2011-05-04 7 views
0

안녕하세요 지금은 내 갤러리에서 폴더를 만들려고하고 있지만,이 라인에서 내 응용 프로그램 충돌은 ... 이러한 오류를 해결하는 방법 좀 도와주세요imageadpter 오류를 해결하는 방법은 무엇입니까? ....

imagegrid.setAdapter(new ImAdapterh(getApplicationContext())); 
System.out.println("index"+getApplicationContext()); 

코드 :

public class ImAdapterh extends BaseAdapter{ 

File dir=new File(Environment.getExternalStorageDirectory(),"/Pictures/"); 

int count=dir.list().length; 

String[] fileNames = dir.list(); 

private Context mContext; 

    public ImAdapterh(Context c) { 
     mContext = c; 
    } 

    public int getCount() { 
     return count; 
    } 

    public Object getItem(int position) { 
     return null; 
    } 

    public long getItemId(int position) { 
     return 0; 
    } 

    // create a new ImageView for each item referenced by the Adapter 
    public View getView(int position, View convertView, ViewGroup parent) { 
     ImageView imageView = null;   


    for(String bitmapFileName : fileNames) 
    { 
      if (convertView == null) 
      { // if it's not recycled, initialize some attributes 
       imageView = new ImageView(mContext); 
       imageView.setLayoutParams(new Gallery.LayoutParams(85, 85)); 
       imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
       imageView.setPadding(8, 8, 8, 8);     

       Bitmap bmp = BitmapFactory.decodeFile(dir.getPath() + "/" + 
     bitmapFileName); 
       System.out.println(dir); 
       imageView.setImageBitmap(bmp); 
      }else 
      { 
      imageView = (ImageView) convertView;    

      } 
     } 
     return imageView; 
     } 
    }} 

로그 캣 오류 :

05-03 22:37:50.134: DEBUG/AndroidRuntime(1328): Shutting down VM 
05-03 22:37:50.134: WARN/dalvikvm(1328): threadid=1: thread exiting with uncaught 
exception (group=0x4001d800) 
05-03 22:37:50.184: ERROR/AndroidRuntime(1328): FATAL EXCEPTION: main 
05-03 22:37:50.184: ERROR/AndroidRuntime(1328): java.lang.RuntimeException: Unable to 
start activity 
ComponentInfo{ImageViewExample.ImageViewExample/ImageViewExample 
.ImageViewExample.ImageViewExample}: java.lang.NullPointerException 
05-03 22:37:50.184: ERROR/AndroidRuntime(1328):  at 
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 
05-03 22:37:50.184: ERROR/AndroidRuntime(1328):  at 
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
05-03 22:37:50.184: ERROR/AndroidRuntime(1328):  at 
android.app.ActivityThread.access$2300(ActivityThread.java:125) 
05-03 22:37:50.184: ERROR/AndroidRuntime(1328):  at 
android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
05-03 22:37:50.184: ERROR/AndroidRuntime(1328):  at 
android.os.Handler.dispatchMessage(Handler.java:99) 
05-03 22:37:50.184: ERROR/AndroidRuntime(1328):  at 
android.os.Looper.loop(Looper.java:123) 
05-03 22:37:50.184: ERROR/AndroidRuntime(1328):  at 
android.app.ActivityThread.main(ActivityThread.java:4627) 
05-03 22:37:50.184: ERROR/AndroidRuntime(1328):  at 
java.lang.reflect.Method.invokeNative(Native Method) 
05-03 22:37:50.184: ERROR/AndroidRuntime(1328):  at 
java.lang.reflect.Method.invoke(Method.java:521) 
05-03 22:37:50.184: ERROR/AndroidRuntime(1328):  at 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
05-03 22:37:50.184: ERROR/AndroidRuntime(1328):  at 
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
05-03 22:37:50.184: ERROR/AndroidRuntime(1328):  at 
dalvik.system.NativeStart.main(Native Method) 
05-03 22:37:50.184: ERROR/AndroidRuntime(1328): Caused by: 
java.lang.NullPointerException 
05-03 22:37:50.184: ERROR/AndroidRuntime(1328):  at 
ImageViewExample.ImageViewExample.ImageViewExample$ImAdapterh.<init> 
(ImageViewExample.java:72) 
05-03 22:37:50.184: ERROR/AndroidRuntime(1328):  at  
ImageViewExample.ImageViewExample.ImageViewExample 
.init_phone_image_grid(ImageViewExample.java:49) 
05-03 22:37:50.184: ERROR/AndroidRuntime(1328):  at 
ImageViewExample.ImageViewExample.ImageViewExample 
.onCreate(ImageViewExample.java:36) 
05-03 22:37:50.184: ERROR/AndroidRuntime(1328):  at 
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
    05-03 22:37:50.184: ERROR/AndroidRuntime(1328):  at 
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
05-03 22:37:50.184: ERROR/AndroidRuntime(1328):  ... 11 more 
+1

logcat은 무엇을 말합니까? – forsvarir

+0

가능한 중복 : http://stackoverflow.com/questions/5868937/trying-to-create-folder-but-its-indicate-logcat-error-how-to-solve – forsvarir

+0

내 응용 프로그램이이 줄에서 충돌합니다. imagegrid.setAdapter (새로운 ImAdapterh (getApplicationContext())); 나에게 당신의 제안을주세요 ... – user737542

답변

1

나는 정말 그러나, 당신은 널 포인터 예외가 있어요 ... 질문을 이해 생각하지 않습니다.

이 나에게 잘못 같습니다 this example 그래서 내가 괜찮 확신으로

public Object getItem(int position) 
{   
    return null;  
} 

그러나, 그것은 동일합니다.

imagegrid.setAdapter(new ImAdapterh(getApplicationContext())); 

가 그런 것처럼 보인다, 그 중 하나 라인에 null의 경우, 또는 중 하나의 부작용이 있어야합니다 :

는 응용 프로그램 (당신이 말한 것)이 라인에 충돌하는 경우 호출로 인해 예외가 발생합니다.

그래서, 분명 가능성 :

  1. 이 시점에서 imagegrid 널인가? 그렇다면 메소드를 호출하면 널 예외가 발생합니다. 아마도 어딘가에서 그것을 생성하고 초기화 했겠지만, 당신은 그 코드를 포함하지 않습니다.
  2. getApplicationContext이 아닌 값을 반환합니까? ImAdapterh에 대한 생성자 내에서 할당되었지만 생성자에서 사용하지는 않았지만 확인할 가치가 있습니다.

    File dir; 
    int count; 
    String[] fileNames; 
    

    : 그것은 문체 수 있지만 ... 내가로 변경합니다 것, 이것은 나에게 발생하기 쉬운 오류를 보인다

    File dir=new File(Environment.getExternalStorageDirectory(),"/Pictures/"); 
    int count=dir.list().length; 
    String[] fileNames = dir.list(); 
    

    : 귀하의 ImAdapterh

은 다음 줄을 포함 그런 다음 클래스의 생성자에서 객체를 생성합니다. 또한이 줄 중 하나가 문제를 일으키는 경우 더 나은 스택 추적을 제공 할 수 있으며 생성자 코드에 중단 점을 설정할 수도 있습니다.

또한 getView 메서드의 시작 부분에 중단 점을 설정하여 imagegrid의 어댑터를 설정 한 결과로 호출되는지 확인합니다.

관련 문제