如何解决Firebase crashlytics 仅报告几次“尝试在空对象引用上调用虚拟方法 '(java.lang.String)'”
如你所见,我试图控制该值不为空,但同样的,错误报告仍然到达。但他们很少。
错误
Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String package...Token.getValor()' on a null object reference
at ...NotificationListPresenter.obtainNotifications(NotificationListPresenter.java:2)
at ...ListActivity.obtainNotifications(ListActivity.java:23)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1454)
at android.app.Activity.performResume(Activity.java:8111)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4647)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4690)
at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:52)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2267)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:237)
at android.app.ActivityThread.main(ActivityThread.java:8167)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100)
代码 NotificationListPresenter
public class NotificationListPresenter extends BasePresenter<NotificationListView> {
private BaseActivity activity = (BaseActivity) getView();
public NotificationListPresenter(NotificationListView viewInstance) {
super(viewInstance);
}
public void obtainNotifications(){
if(activity!= null && activity.getData() != null && activity.getData().getToken() != null) {
NotificationService.getInstance().getList(activity.getData().getToken().getValor())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(response -> {
something...
},err -> {
somethingIfError(err);
});
}
}
ListActivity
public class ListActivity extends BaseActivity<ListPresenter>
implements ListView,NotificationListView{
// onCreate and onResume call this method if necessary
private void obtainNotifications() {
NotificationListPresenter notificationListPresenter = new NotificationListPresenter(this);
notificationListPresenter.obtainNotifications();
}
我不知道问题出在哪里了:(
解决方法
你应该用这个替换 if 语句。因为 .getValor() 在空对象引用上,这就是您面临此崩溃问题的原因。
if(activity!= null && activity.getData() != null && activity.getData().getToken().getValor() != null)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。