2013-08-28 5 views
0

내 앱에서 이상한 NullPointerException이 있습니다.null null 포인터 예외

나는이 코드를 실행

protected void onPostExecute(Void result) 
{    

    Log.i("name1", userProfilePictures[positionForPicture][0]); 

    if(movedToAnotherActivity) 
     return; 

    if(loadNewPosts && loaded10More == false) 
    {   
     firstLoopPicture = true; 
     positionForPicture = 0; 
     return; 
    } 

    if((positionForPicture == userProfilePictures.length) == false) 
    { 
     new GetUserPicture().execute(); 

     int loadLength = loadedPostsSaverForPictures.length; 

     String name = userProfilePictures[positionForPicture][0]; 

     Log.i("name", name); 
    } 
} 

... ... ...

을 그리고 난이 라인에서 널 포인터 예외를 얻을 :

String name = userProfilePictures[positionForPicture][0]; 
    Log.i("name", name); 

로그인 고양이 :

08-28 17:39:28.140: E/AndroidRuntime(26801): FATAL EXCEPTION: main 
08-28 17:39:28.140: E/AndroidRuntime(26801): java.lang.NullPointerException: println needs a message 
08-28 17:39:28.140: E/AndroidRuntime(26801): at android.util.Log.println_native(Native Method) 
08-28 17:39:28.140: E/AndroidRuntime(26801): at android.util.Log.i(Log.java:159) 
08-28 17:39:28.140: E/AndroidRuntime(26801): at com.example.workoutlog.WorkoutsWall$GetUserPicture.onPostExecute(WorkoutsWall.java:3420) 
08-28 17:39:28.140: E/AndroidRuntime(26801): at com.example.workoutlog.WorkoutsWall$GetUserPicture.onPostExecute(WorkoutsWall.java:1) 
08-28 17:39:28.140: E/AndroidRuntime(26801): at android.os.AsyncTask.finish(AsyncTask.java:631) 
08-28 17:39:28.140: E/AndroidRuntime(26801): at android.os.AsyncTask.access$600(AsyncTask.java:177) 
08-28 17:39:28.140: E/AndroidRuntime(26801): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644) 
08-28 17:39:28.140: E/AndroidRuntime(26801): at android.os.Handler.dispatchMessage(Handler.java:99) 
08-28 17:39:28.140: E/AndroidRuntime(26801): at android.os.Looper.loop(Looper.java:137) 
08-28 17:39:28.140: E/AndroidRuntime(26801): at android.app.ActivityThread.main(ActivityThread.java:5226) 
08-28 17:39:28.140: E/AndroidRuntime(26801): at java.lang.reflect.Method.invokeNative(Native Method) 
08-28 17:39:28.140: E/AndroidRuntime(26801): at java.lang.reflect.Method.invoke(Method.java:511) 
08-28 17:39:28.140: E/AndroidRuntime(26801): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795) 
08-28 17:39:28.140: E/AndroidRuntime(26801): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562) 
08-28 17:39:28.140: E/AndroidRuntime(26801): at dalvik.system.NativeStart.main(Native Method) 
나에게 문자열을 제공

Log.i("name1", userProfilePictures[positionForPicture][0]); 

및 NOT NULL 오류 : 53,691,363,210

이상한 것은이 라인 전에이 코드를 가지고있다.

왜 널 포인터 예외가 발생합니까? 그것의 동일한 문자열 ...

+1

데이터 '는 userProfilePictures [positionForPicture] [0]'널이 될 것으로 보인다. –

+0

그럼 왜이 코드를 실행할 때 null이 아닌 문자열이 생깁니 까? Log.i ("name1", userProfilePictures [positionForPicture] [0]); – dasdasd

+2

'새로운 GetUserPicture(). execute();','userProfilePictures'의 내용을 변경할 수있는 처리를합니까? – jbihan

답변

0

이 비동기 작업이 배열을로드하는 경우 userProfilePictures 대답을 기다려야합니다. postexecute에 부울을 리턴하고 수행 : 어레이에 저장

Boolean b= new GetUserPicture().execute();