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]); 

Который дает мне строку, а не нулевой ошибка.

Почему я получаю исключение из null-указателя? Его та же строка ...

+1

данные, хранящиеся в массиве 'userProfilePictures [positionForPicture] [0]', как представляется, быть пустым. –

+0

Итак, почему я не получаю ни одну нулевую строку, когда я запускаю этот код? Log.i ("name1", userProfilePictures [positionForPicture] [0]); – dasdasd

+2

В 'new GetUserPicture(). Execute();', вы выполняете некоторую обработку, которая может изменять содержимое 'userProfilePictures'? – jbihan

ответ

0

если эта задача асинхронного восстановления вашего массива userProfilePictures вам следует подождать ответа. возвращают логическое значение в postexecute и сделать:

Boolean b= new GetUserPicture().execute(); 
Смежные вопросы