У меня есть библиотека для 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 на устройстве Samsung.
Я использую android.arch.lifecycle:extensions:1.1.1
.
Может кто-нибудь помочь мне с этим?