0

アプリに奇妙な NullPointerException があります。

私はこのコードを実行します:

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エラーではなく文字列が表示されます。

null ポインター例外が発生するのはなぜですか? 同じ文字列...

4

1 に答える 1

0

この非同期タスクが配列をロードしているuserProfilePictures場合は、応答を待つ必要があります。postexecute でブール値を返し、次のようにします。

Boolean b= new GetUserPicture().execute();
于 2013-08-28T15:15:14.423 に答える