Failed to resolve: androidx.lifecycle:lifecycle-extensions 问题解决方案

1,443 阅读1分钟

最近在学习使用Jetpack中的LifeCycle组件,跟着教程导入androidx.lifecycle:lifecycle-extensions时发现Android Studio报如下警告:

Failed to resolve: androidx.lifecycle:lifecycle-extensions:2.2.0
Add Google Maven repository and sync project
Show in Project Structure dialog
Affected Modules: app

一开始以为是网络问题,后来发现不是,然后度娘五分钟,无果。于是去官方文档翻了翻,发现自2020年1月22日发布的2.2.0版本后,该API被废弃,之后需要哪个就添加对应的扩展。如下:
(Android中文文档浓浓的机翻味啊)

  • 废弃 lifecycle-extensions 制品:随着上方所述的 ViewModelProviders.of() 废弃,此版本标志着废弃了 lifecycle-extensions 中的最后一个 API,因此现在该制品已完全被废弃。我们强烈建议依赖于您需要的特定 Lifecycle 制品(例如,如果您使用的是 LifecycleService,则依赖于 lifecycle-service;如果您使用的是 ProcessLifecycleOwner,则依赖于 lifecycle-process)而不是 lifecycle-extensions,因为将来不会有 lifecycle-extensions 的 2.3.0 版本。
  • lifecycle-extensions 中的 API 已废弃。您可以改而为您需要的具体 Lifecycle 工件添加依赖项:
    dependencies {
        val lifecycle_version = "2.5.1"
        val arch_version = "2.1.0"

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

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

        // Annotation processor
        kapt("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-ktx:$lifecycle_version")

        // optional - Test helpers for LiveData
        testImplementation("androidx.arch.core:core-testing:$arch_version")

        // optional - Test helpers for Lifecycle runtime
        testImplementation ("androidx.lifecycle:lifecycle-runtime-testing:$lifecycle_version")
    }

所以把 implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' 直接删了吧
附带官方文档链接:developer.android.google.cn/jetpack/and…