迁移到androidx后没有超级方法getLifecycle()
我一直在尝试将我的应用程序迁移到使用androidx,但我似乎遇到了一个奇怪的错误。从调用迁移到androidx后没有超级方法getLifecycle(),android,android-lifecycle,androidx,Android,Android Lifecycle,Androidx,我一直在尝试将我的应用程序迁移到使用androidx,但我似乎遇到了一个奇怪的错误。从调用getLifeCycle()时扩展AppCompatActivity的my activity中,它抛出以下异常 Caused by: java.lang.NoSuchMethodError: No super method getLifecycle()Landroidx/lifecycle/Lifecycle; in class Landroidx/core/app/ComponentActivity;
getLifeCycle()
时扩展AppCompatActivity的my activity中,它抛出以下异常
Caused by: java.lang.NoSuchMethodError: No super method getLifecycle()Landroidx/lifecycle/Lifecycle; in class Landroidx/core/app/ComponentActivity; or its super classes
at androidx.fragment.app.FragmentActivity.getLifecycle(FragmentActivity.java:324)
我认为AppCompativeActivity应该实现LifecycleOwner,但它不是。我做错什么了吗?
这是我的gradle相依关系
implementation files("libs/jsoup-1.8.3.jar")
implementation "com.github.philjay:MPAndroidChart:v3.0.2"
implementation 'androidx.gridlayout:gridlayout:1.0.0'
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'com.google.android.material:material:1.1.0-alpha01'
implementation "androidx.constraintlayout:constraintlayout:2.0.0-alpha2"
implementation 'androidx.constraintlayout:constraintlayout-solver:2.0.0-alpha2'
implementation 'androidx.cardview:cardview:1.0.0'
implementation "com.google.firebase:firebase-messaging:17.3.4"
implementation 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'androidx.vectordrawable:vectordrawable:1.0.1'
implementation "androidx.lifecycle:lifecycle-runtime:2.0.0"
annotationProcessor "androidx.lifecycle:lifecycle-compiler:2.0.0" // use kapt for Kotlin
implementation "de.hdodenhof:circleimageview:2.2.0"
implementation 'androidx.core:core:1.1.0-alpha01'
implementation "com.thoughtbot:expandablerecyclerview:1.0"
implementation "androidx.lifecycle:lifecycle-livedata:2.0.0"
implementation "androidx.lifecycle:lifecycle-viewmodel:2.0.0"
implementation "com.github.franmontiel:FullScreenDialog:1.0.1"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation "com.github.apl-devs:appintro:v4.2.3"
implementation "com.google.firebase:firebase-crash:16.2.1"
implementation "com.google.firebase:firebase-core:16.0.5"
恢复到1.0.1版对我来说很有用
implementation "androidx.core:core:1.0.1"
刚刚在androidx.appcompat:appcompat的verision
1.1.0-alpha01
中试用过,现在可以使用了
LifecycleOwner
接口现在由ComponentActivity
实现,该接口由FragmentActivity
->AppCompatActivity
扩展。您现在应该能够从您的活动中获取生命周期对象。在我的例子中,我的问题是androidx活动的1.0.0-alpha05版本,我恢复到1.0.0-alpha03
,它工作正常您应该将androidx.appcompat:appcompat
版本更改为1.1.0-alpha04
是否启用了Jetifier?您的某些依赖项可能仍在使用支持库,这可能会导致冲突。@漫游者是的,我确实尝试实现了androidx.fragment:fragment:1.0.0
。在androidx.activity.ComponentActivity
和androidx.core.app.ComponentActivity
上似乎都有ComponentActivity
。前者实现LifecycleOwner接口,而第二个则没有。我认为您的IDE正在使用第一个,而运行时正在尝试使用第二个。我想这就是为什么安卓仍然主要在阿尔法的原因。@流浪者谢谢,就是这样!我删除了androidx.core的依赖项,它成功了,我将进一步研究androidx包,并测试我不需要它。如果1.1.0的LPHA版本存在问题,请单击其中一个,您可以找到alpha版本