// 문제 발생 dependency resolution errors.
런타임 시, dependencies 충돌발생
Duplicate class가 있다고 에러를 출력.
Basic Activity로 프로젝트를 생성 했을 때,
에뮬레이터를 실행하니 아래와 같은 에러가 발생했다.
Duplicate class androidx.lifecycle.ViewModelLazy found in modules lifecycle-viewmodel-2.5.1-runtime (androidx.lifecycle:lifecycle-viewmodel:2.5.1) and lifecycle-viewmodel-ktx-2.3.1-runtime (androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1)
Duplicate class androidx.lifecycle.ViewTreeViewModelKt found in modules lifecycle-viewmodel-2.5.1-runtime (androidx.lifecycle:lifecycle-viewmodel:2.5.1) and lifecycle-viewmodel-ktx-2.3.1-runtime (androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1)
Go to the documentation to learn how to Fix dependency resolution errors.
// 해결법 - 하책
정확하게 원인을 파악하는 방법은 아직 모르겠다.
런타임에서 가져온 라이브러리들 중에서, 중복 되는 종속된 dependency가 여러 버전이 있으면, 뭐에서 가져와야하는지 몰라서 에러가 생기는 듯하다.
dependencies에 대해서 뭔가 우선순위가 있는 것 같기도 하고,?
구글 문서 빌드 구성 부분이 이해가 안 되게 작성이 되어 있는 듯하다.
우선 스택오버플로 찾아보고, 내 dependencies에 이것을 추가해줬다.
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1’
이거를 추가함으로써, 이 버전을 우선으로 잡는듯하다?
// 구글문서
// ide에서 충돌 나는 라이브러리 검색해보기
menu Navigate – Class (컨트롤 + N) - 충돌 나는 class 입력 – 검색된 class에서 우측에 어떤 라이브러리인지 적혀있다.
(쉬프트 두 번 – class탭으로 해서 찾아봐도 된다.)
project창-project탭으로 봤을 때, External Libraries가 나오는데 그 라이브러리가 검색되는듯하다.
// 검색 키워드 (Android Dependency 충돌 해결)
터미널에
./gradlew app:dependencies
를 쳐보니, 빌드 타입 별로 빌드 시키고, dependencies들이 어떻게 들어가 있는지 출력이 되는 듯하다.
다른 해결법으로 문제되는 라이브러리에서, 문제되는 종속성을 제외시키는 방법이나
충돌 시, resolutionStrategy를 작성하는 방법이 보이긴 하던데.
다음에도 이 문제가 발생하면, 좀 더 찾아보고 노하우를 업그레이드 해야겠다.
'Android > Error' 카테고리의 다른 글
디버깅 특강 (0) | 2024.05.06 |
---|---|
안드로이드 xml preview 안나옴 (0) | 2022.12.15 |
Android studio module not showing (0) | 2022.09.29 |
랜더링 오류 수정하기. (0) | 2018.08.15 |