[안드로이드] 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"

를 추가해주면 됩니다.

작성자

Posted by 드리머즈

관련 글

댓글 영역