-1

我在让 Async 正常工作时遇到了一些麻烦。我让我的 doInBackground 传递了一个 JSON 响应字符串,我的 onPostExecute 将对其进行解析然后发送到视图,但我的 onPostExecute 一直得到一个空指针。我知道它得到了正确的响应,因为我的日志打印了我期望的 JSON 字符串。

我没有正确传递一些东西吗?

这是我的堆栈跟踪:

07-07 13:26:33.757: ERROR/AndroidRuntime(5714): FATAL EXCEPTION: main
    java.lang.NullPointerException
    at com.dsgunter.randompokemongenerator.Generator$LoadPokemon.onPostExecute(Generator.java:153)
    at com.dsgunter.randompokemongenerator.Generator$LoadPokemon.onPostExecute(Generator.java:113)
    at android.os.AsyncTask.finish(AsyncTask.java:631)
    at android.os.AsyncTask.access$600(AsyncTask.java:177)
    at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:5021)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
    at dalvik.system.NativeStart.main(Native Method)

和我的代码,为简洁起见,我将在一个要点中发布:

https://gist.github.com/verkaufer/88eeb44a0997a4a49779

4

3 回答 3

0

问题出在progressDialog.dismiss(). 该progressDialog变量为空。您pDialog为上面的 onPreExecute 方法创建了一个本地方法,我认为这是您真正想要忽略的。

于 2013-07-07T18:33:35.663 回答
0

您的progressDialog变量看起来永远不会被初始化,所以它是null. 而这条线

progressDialog.dismiss();

然后因此抛出 NPE。

于 2013-07-07T18:34:02.317 回答
0

你从不初始化progressDialog,所以它是null。我猜你想关闭在 中创建的对话框onPreExecute,所以添加这一行:

progressDialog = pDialog;
于 2013-07-07T18:34:41.180 回答