首页 > 解决方案 > 尝试在空对象引用上调用接口方法“java.lang.Object java.util.Map$Entry.getValue()”

问题描述

我在我的应用程序中面临以下问题,不知道它是如何产生或解决的。任何帮助都感激不尽。

Caused by java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.Object java.util.Map$Entry.getValue()' on a null object reference
   at android.arch.lifecycle.LifecycleRegistry.isSynced(LifecycleRegistry.java:146)
   at android.arch.lifecycle.LifecycleRegistry.sync(LifecycleRegistry.java:323)
   at android.arch.lifecycle.LifecycleRegistry.moveToState(LifecycleRegistry.java:137)
   at android.arch.lifecycle.LifecycleRegistry.handleLifecycleEvent(LifecycleRegistry.java:123)
   at android.support.v4.app.Fragment.performResume(Fragment.java:2396)
   at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1467)
   at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1752)
   at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1821)
   at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3251)
   at android.support.v4.app.FragmentManagerImpl.dispatchResume(FragmentManager.java:3215)
   at android.support.v4.app.FragmentController.dispatchResume(FragmentController.java:217)
   at android.support.v4.app.FragmentActivity.onResumeFragments(FragmentActivity.java:509)
   at android.support.v4.app.FragmentActivity.onPostResume(FragmentActivity.java:498)
   at android.support.v7.app.AppCompatActivity.onPostResume(AppCompatActivity.java:171)
   at android.app.Activity.performResume(Activity.java:7377)
   at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3763)
   at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3828)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1746)
   at android.os.Handler.dispatchMessage(Handler.java:105)
   at android.os.Looper.loop(Looper.java:164)
   at android.app.ActivityThread.main(ActivityThread.java:6938)
   at java.lang.reflect.Method.invoke(Method.java)
   at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

编辑:以下是 Activity 的恢复方法:

@Override
    public void onResume() {
        super.onResume();
        updateParams();
        if (!EventBus.getDefault().isRegistered(this)) {
            EventBus.getDefault().register(this);
        }
        if (addButtonClicked) {
            addButtonClicked = false;
            refreshData();
        }
        if (isRestarted) {
            isRestarted = false;
            if (adapter != null && adapter.getFragmentAtPosition(0) != null && (adapter.getFragmentAtPosition(0).isAdded() || !adapter.getFragmentAtPosition(0).isDetached())) {
                ((ListFragment) adapter.getFragmentAtPosition(0)).searchList("");
            }
        }
        checkAndUpdateOnTabs();
    }

标签: javaandroidandroid-activityandroid-fragmentactivity

解决方案


生命周期扩展中的 API 已被弃用。相反,为您需要的特定生命周期工件添加依赖项。

 lifecycle_version = "2.2.0"
    def arch_version = "2.1.0"

    // ViewModel
    implementation "androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version"
    // LiveData
    implementation "androidx.lifecycle:lifecycle-livedata:$lifecycle_version"
    // Lifecycles only (without ViewModel or LiveData)
    implementation "androidx.lifecycle:lifecycle-runtime:$lifecycle_version"

    // Saved state module for ViewModel
    implementation "androidx.lifecycle:lifecycle-viewmodel-savedstate:$lifecycle_version"

    // Annotation processor
    annotationProcessor "androidx.lifecycle:lifecycle-compiler:$lifecycle_version"
    // alternately - if using Java8, use the following instead of lifecycle-compiler
    implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"

    // optional - helpers for implementing LifecycleOwner in a Service
    implementation "androidx.lifecycle:lifecycle-service:$lifecycle_version"

    // optional - ProcessLifecycleOwner provides a lifecycle for the whole application process
    implementation "androidx.lifecycle:lifecycle-process:$lifecycle_version"

    // optional - ReactiveStreams support for LiveData
    implementation "androidx.lifecycle:lifecycle-reactivestreams:$lifecycle_version"

推荐阅读