【发布时间】:2019-02-15 06:28:43
【问题描述】:
我有一个 SDK 库,它扩展了 Application.ActivityLifecycleCallbacks,LifecycleObserver。在构造函数中,我将类注册为 ProcessLifecycleOwner 的观察者。
ProcessLifecycleOwner.get().getLifecycle().addObserver(this);
对于 ON_START 起作用的方法,我为其添加了以下注释。
@OnLifecycleEvent(Lifecycle.Event.ON_START)
这在本地和测试环境中完全可以正常工作。即使对于发布版本,它也可以正常工作。但很少会出现以下错误:
Caused by java.lang.NoSuchFieldException: ON_START
at java.lang.Class.getDeclaredField(Class.java:929)
at libcore.reflect.AnnotationAccess.decodeValue(AnnotationAccess.java:685)
at libcore.reflect.AnnotationAccess.toAnnotationInstance(AnnotationAccess.java:663)
at libcore.reflect.AnnotationAccess.toAnnotationInstance(AnnotationAccess.java:641)
at libcore.reflect.AnnotationAccess.getDeclaredAnnotation(AnnotationAccess.java:170)
at java.lang.reflect.Method.getAnnotation(Method.java:301)
at android.arch.lifecycle.ClassesInfoCache.createInfo(SourceFile:124)
at android.arch.lifecycle.ClassesInfoCache.hasLifecycleMethods(SourceFile:59)
at android.arch.lifecycle.Lifecycling.resolveObserverCallbackType(SourceFile:137)
at android.arch.lifecycle.Lifecycling.getObserverConstructorType(SourceFile:119)
at android.arch.lifecycle.Lifecycling.getCallback(SourceFile:57)
at android.arch.lifecycle.LifecycleRegistry$ObserverWithState.<init>(SourceFile:347)
at android.arch.lifecycle.LifecycleRegistry.addObserver(SourceFile:162)
此错误非常罕见。我只看到三星设备上的 Android 5.0、5.0.1 和 5.0.2 会发生这种情况。
我正在使用android.arch.lifecycle:extensions:1.1.1。
有人可以帮我解决这个问题吗?
【问题讨论】:
-
您使用的是哪个版本的生命周期?添加带有问题的依赖项。
-
我正在使用
1.1.1进行拱形生命周期。
标签: java android android-lifecycle android-library application-lifecycle