[안드로이드] Could not find androidx.lifecycle:lifecycle-extensions:2.3.0.
문제 현상
gradle에서 사용하는 lib 버전을 올리라는 알람이 떠서 최신 버전으로 다 올렸습니다.
그리고 실행을 시켰더니 아래의 에러가 발생했습니다.
Execution failed for task ':app:checkDebugAarMetadata'.
> Could not resolve all files for configuration ':app:debugRuntimeClasspath'.
> Could not find androidx.lifecycle:lifecycle-extensions:2.3.0.
Searched in the following locations:
- https://dl.google.com/dl/android/maven2/androidx/lifecycle/lifecycle-extensions/2.3.0/lifecycle-extensions-2.3.0.pom
- https://jcenter.bintray.com/androidx/lifecycle/lifecycle-extensions/2.3.0/lifecycle-extensions-2.3.0.pom
- https://repo.maven.apache.org/maven2/androidx/lifecycle/lifecycle-extensions/2.3.0/lifecycle-extensions-2.3.0.pom
- http://devrepo.kakao.com:8088/nexus/content/groups/public/androidx/lifecycle/lifecycle-extensions/2.3.0/lifecycle-extensions-2.3.0.pom
- https://jitpack.io/androidx/lifecycle/lifecycle-extensions/2.3.0/lifecycle-extensions-2.3.0.pom
- https://maven.google.com/androidx/lifecycle/lifecycle-extensions/2.3.0/lifecycle-extensions-2.3.0.pom
- https://oss.jfrog.org/libs-snapshot/androidx/lifecycle/lifecycle-extensions/2.3.0/lifecycle-extensions-2.3.0.pom
Required by:
project :app
Possible solution:
- Declare repository providing the artifact, see the documentation at https://docs.gradle.org/current/userguide/declaring_repositories.html
원인
말 그대로 dependency로 지정한 androidx.lifecycle:lifecycle-extensions:2.3.0를 찾지 못해서 에러가 발생한 것입니다.
구글에서 lifecycle 2.3.0 버전부터 라이브러리 구조를 세분화 시켰습니다.
해결 방법
안드로이드 공식 사이트에 이에 대한 설명이 있습니다.
developer.android.com/jetpack/androidx/releases/lifecycle
lifecycle-extensions의 API는 지원 중단되었습니다. 대신 필요한 특정 수명 주기 아티팩트의 종속 항목을 추가하세요.
lifecycle-extensions의 향후 2.3.0 출시가 없기 때문에 lifecycle-extensions 대신 필요한 특정 Lifecycle 아티팩트(예를 들어 LifecycleService를 사용 중일 때는 lifecycle-service, ProcessLifecycleOwner를 사용 중일 때는 lifecycle-process)를 사용할 것을 권장합니다.
저의 경우 기억을 떠올려 보면 ProcessLifecycleOwner를 사용 중이었습니다.
implementation "androidx.lifecycle:lifecycle-extensions:$rootProject.archLifecycleVersion"
그래서 위의 코드를 아래와 같이 바꾸니 문제의 에러가 사라졌습니다.
implementation "androidx.lifecycle:lifecycle-process:$rootProject.archLifecycleVersion"
그런데 아래의 새로운 에러가 발생했습니다.
error: no suitable constructor found for ViewModelProvider
이 경우
implementation "androidx.lifecycle:lifecycle-viewmodel:$rootProject.archLifecycleVersion"
를 추가해주면 됩니다.
댓글 영역