我在我的应用程序中使用AsyncHTTPClient(loopj.com/android-async-http/)到多余的json api。它工作正常,除非用户在asynchttpclient完成其工作之前按下后退按钮。 它崩溃的应用程序。 这是我的onFinish()
方法代码。loopj android-async-http客户端导致应用程序崩溃与nullPointerException
@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);
}
});
}
}
});
这里是堆栈跟踪
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和如果有什么错误,我可能会做,请大家指出。 请帮助,提前致谢!
你最终找到了解决问题的办法吗?我有同一个。 – Karim
不是,但尝试了很多东西,它的工作。以下由indigomonkey给出的答案有所帮助。我重写了onFailure方法的所有版本,检查了适配器,列表视图和上下文等变量为空的变量。你在使用actionBarSherlock和碎片吗?如果是这样,还检查从getActivity()返回的上下文为空。 – StarWars