Android Developer

[Android] Duplicate class androidx.lifecycle.ViewModelLazy found...

졸려질려 2022. 11. 21. 11:25
반응형

 새 Android 프로젝트에 개발하고 있던 라이브러리 모듈을 붙였더니 다음과 같은 에러가 나타났다. [Sync Now] 를 할때는 오류가 안생기다가, RUN 만 시키면 발생하는 오류였다.

Duplicate class androidx.lifecycle.ViewModelLazy found in modules jetified-lifecycle-viewmodel-ktx-2.3.1-runtime (androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1) and lifecycle-viewmodel-2.5.0-runtime (androidx.lifecycle:lifecycle-viewmodel:2.5.0)

Duplicate class androidx.lifecycle.ViewTreeViewModelKt found in modules jetified-lifecycle-viewmodel-ktx-2.3.1-runtime (androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1) and lifecycle-viewmodel-2.5.0-runtime (androidx.lifecycle:lifecycle-viewmodel:2.5.0)

Go to the documentation to learn how to Fix dependency resolution errors.

 오류문을 읽어보니, ViewModel 관련된 무언가가 중복되었다는 말인것 같았다. 처음에는 라이브러리의 build.gradle 파일에 정의한 implementation 들의 버전을 앱모듈에서 똑같이 되도록 수정해보았으나, 잘 해결되지 않았다. 그래서 구글에 검색해보니, ViewModel 관련된 Implementation 을 직접 명시해주면 해결된다고 한다. 기존에 App 모듈의 build.gradle 파일에서 Dependency 부분은 다음과 같았다.

implementation 'androidx.core:core-ktx:1.9.0'
implementation 'androidx.appcompat:appcompat:1.5.1'
implementation 'com.google.android.material:material:1.7.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.4'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.0'

 여기에서 다음 3 줄의 코드를 dependencies 에 추가해주었다.

def lifecycle_version = "2.5.1"
implementation "androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"

 코드를 추가하면서, 위에 에러는 사라지고 정상적으로 앱을 실행시킬 수 있었다.

반응형