首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >loopj android-async-http客户端导致应用程序与nullPointerException崩溃

loopj android-async-http客户端导致应用程序与nullPointerException崩溃
EN

Stack Overflow用户
提问于 2013-10-03 18:43:44
回答 2查看 2.2K关注 0票数 0

我在我的应用程序中使用AsyncHTTPClient(loopj.com/android-async-http/)来增加json api。它工作得很好,除非用户在asynchttpclient完成其工作之前按下后退按钮。它会使应用程序崩溃。下面是我的onFinish()方法代码。

代码语言:javascript
复制
@Override
                public void onFinish(){
                    super.onFinish();
                    if(nodata == false){
                        getActivity().runOnUiThread(new Runnable() {
                            public void run() {
                                /**
                                 * Updating parsed JSON data into ListView
                                 * */
                                adapter=new AlbumListAdapter(AlbumsListActivity.this, tracksList);
                                lv.setAdapter(adapter);
                                adapter.notifyDataSetChanged();

                                setTitle(activity_title);
                                findViewById(R.id.loading_layout).setVisibility(View.GONE);
                                lv.setVisibility( View.VISIBLE );
                            }
                        });
                    }else{
                        runOnUiThread(new Runnable() {
                            public void run() {
                                adapter=new AlbumListAdapter(AlbumsListActivity.this, tracksList);
                                lv.setAdapter(adapter);
                                adapter.notifyDataSetChanged();

                                findViewById(R.id.loading_layout).setVisibility(View.GONE);
                                lv.setEmptyView(findViewById(R.id.empty_list_item));
                                lv.setVisibility( View.VISIBLE );
                            }
                        });
                    }
                }
            });

这是stackTrace

代码语言:javascript
复制
 FATAL EXCEPTION: main
 java.lang.NullPointerException
 10-03 15:58:02.732: E/AndroidRuntime(19532):   at com.example.ListFragment$2.onFinish(ListFragment.java:423)
 10-03 15:58:02.732: E/AndroidRuntime(19532):   at com.loopj.android.http.AsyncHttpResponseHandler.handleMessage(AsyncHttpResponseHandler.java:194)
 10-03 15:58:02.732: E/AndroidRuntime(19532):   at com.loopj.android.http.AsyncHttpResponseHandler$1.handleMessage(AsyncHttpResponseHandler.java:84)
 10-03 15:58:02.732: E/AndroidRuntime(19532):   at android.os.Handler.dispatchMessage(Handler.java:99)
 10-03 15:58:02.732: E/AndroidRuntime(19532):   at android.os.Looper.loop(Looper.java:137)
 10-03 15:58:02.732: E/AndroidRuntime(19532):   at android.app.ActivityThread.main(ActivityThread.java:4448)
 10-03 15:58:02.732: E/AndroidRuntime(19532):   at java.lang.reflect.Method.invokeNative(Native Method)
 10-03 15:58:02.732: E/AndroidRuntime(19532):   at java.lang.reflect.Method.invoke(Method.java:511)
 10-03 15:58:02.732: E/AndroidRuntime(19532):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:823)
 10-03 15:58:02.732: E/AndroidRuntime(19532):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:590)
 10-03 15:58:02.732: E/AndroidRuntime(19532):   at dalvik.system.NativeStart.main(Native Method)

我是android的新手,如果我可能做错了什么,请指出。请帮帮忙,提前谢谢!

EN

回答 2

Stack Overflow用户

发布于 2013-10-03 19:03:29

如果不访问方法onFinish()中的行号,就很难判断具体的错误是什么。

但是,堆栈跟踪的第一行显示NullPointerException发生在

代码语言:javascript
复制
com.example.ListFragment$2.onFinish(ListFragment.java:423)

这表明您需要在代码中找到第423行,这将缩小您试图访问的值为null的变量的范围。

例如,假设您发现第423行是以下行:

代码语言:javascript
复制
lv.setAdapter(adapter);

您现在可以确定lv为null,并调试可能的原因。

票数 1
EN

Stack Overflow用户

发布于 2014-01-17 15:52:03

如果在应用程序由于背部按压而关闭时有未决的请求,您可能会得到一个NullPointerException。在我的例子中,通常在回调处理程序中。我发现在AsyncHttpClient上调用.cancelRequest解决了这个问题。在我的例子中,我在我的活动的onDestroy()中调用它,每当按下后键和应用程序退出时都会调用它。

代码语言:javascript
复制
Context context = this; // "this" is the Activity used by the client
client.cancelRequests(context, true);

Javadoc在方法定义中解释了这一点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19157116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档