반응형
새 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"
코드를 추가하면서, 위에 에러는 사라지고 정상적으로 앱을 실행시킬 수 있었다.
반응형
'Android Developer' 카테고리의 다른 글
Tensorflow Lite for Android - Overview (0) | 2023.01.30 |
---|---|
Android TinyDancer 라이브러리 분석 (FPS, 프레임률 측정) (0) | 2022.12.28 |
화면 자동 꺼짐 없이 항상 화면을 키고 싶을 때 (0) | 2022.11.03 |
Android Vitals 와 Firebase Crashlytics 연동 (0) | 2022.11.02 |
Firebase Console 과 Android App 연동 (0) | 2022.11.02 |