Android 改装响应NullPointerException
在我的应用程序中,我一直在对我的Web服务调用进行改进。它工作不好。这是应用程序启动时导致的错误 04-16 07:41:26.162 5860-5860/com.pance.taugaksih E/AndroidRuntime:致命异常:main java.lang.NullPointerException 位于com.pance.taugaksih.activity.SplashscreenActivity$1.success(SplashscreenActivity.java:54) 位于com.pance.taugaksih.activity.SplashscreenActivity$1.success(SplashscreenActivity.java:42) CallbackRunnable$1.run(CallbackRunnable.java:45) 位于android.os.Handler.handleCallback(Handler.java:725) 位于android.os.Handler.dispatchMessage(Handler.java:92) 位于android.os.Looper.loop(Looper.java:137) 位于android.app.ActivityThread.main(ActivityThread.java:5041) 位于java.lang.reflect.Method.Invokenactive(本机方法) 位于java.lang.reflect.Method.invoke(Method.java:511) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)上 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 在dalvik.system.NativeStart.main(本机方法) 这是我调用带有响应NullpointerExeption的改装的代码Android 改装响应NullPointerException,android,retrofit,Android,Retrofit,在我的应用程序中,我一直在对我的Web服务调用进行改进。它工作不好。这是应用程序启动时导致的错误 04-16 07:41:26.162 5860-5860/com.pance.taugaksih E/AndroidRuntime:致命异常:main java.lang.NullPointerException 位于com.pance.taugaksih.activity.SplashscreenActivity$1.success(SplashscreenActivity.java:54) 位于
RESTClient.get().getPost(new Callback<ResponsePost>() {
@Override
public void failure(RetrofitError error) {
// TODO Auto-generated method stub
progress.dismiss();
Toast.makeText(getApplicationContext(), "AKSES KE SERVER GAGAL" + error.getMessage(), Toast.LENGTH_LONG).show();
finish();
}
@Override
public void success(ResponsePost post, Response response) {
// TODO Auto-generated method stub
if (post.getPost().size() > 0) {
PostController chb = new PostController(myContext);
chb.open();
chb.deleteData();
for (int y = 0; y < post.getPost().size(); y++) {
PostModel tmpHasil = post.getPost().get(y);
chb.insertPost(tmpHasil);
}
chb.close();
Intent sendIntent = new Intent(myContext,PostActivity.class);
startActivity(sendIntent);
finish();
} else {
Toast.makeText(getApplicationContext(), "DATA SEDANG TIDAK TERSEDIA", Toast.LENGTH_LONG).show();
}
progress.dismiss();
}
});
}我认为您正在循环中运行代码,请更新完整代码。试试 改变
if (post.getPost().size() > 0) {
到
您在
SplashscreenActivity.java的45
和54
行中有什么内容?这不是改装问题!这是SplashscreenActivity.java的第45行和第54行中的代码。这是第45行:RESTClient.get().getPost(新回调(){这是第54行如果(post.getPost().size()>0){检查post.getPost()是否为null。比如如果(post.getPost()!=null&&post.getPost().size()>0)在循环中是什么意思?导致错误的代码:if(post.getPost().size()>0)。返回NullPointerExeptionies,不再出错,但它将转到else语句。我有一个数据要获取,但使用我的代码我仍然得到了返回NullpointerExeption。请尝试Log post.getPost().size。结果如何?如我前面所说,如果我尝试访问post.getPost().size())。它将返回NullPointerExeption您可以发布类响应post.classI更新我的答案。试试!!
if (post.getPost().size() > 0) {
PostController chb = new PostController(myContext);
chb.open();
chb.deleteData();
if(post != null && !post.getPost().isEmpty()){
for(ResponsePost data: post.getPost()){
PostModel tmpHasil = data.getName(); // or getYourNameModel()
chb.insertPost(tmpHasil);
// enter code here
}
}
chb.close();
Intent sendIntent = new Intent(myContext,PostActivity.class);
startActivity(sendIntent);
finish();