많은 프로젝트 중에서 개발이 완료된 뒤에 최신 Android Studio에서 기존 프로젝트를
Open 하는 경우 종종 AndroidX 마이그레이션 문제가 발생을 합니다.
Android Studio 및 SDK 버전이 올라가면서 AndroidX로 변경이 되었기 때문인데
개발자들이 생각보다 많이 겪는 상황이라 판단되어 해당 내용을 정리합니다.
먼저 AndroidX 마이그레이션 관련 에러 문구가 다음과 같이 발생을 합니다.
ERROR: This project uses AndroidX dependencies,
but the 'android.useAndroidX' property is not enabled.
Set this property to true in the gradle.properties file and retry.
The following AndroidX dependencies are detected: androidx.appcompat:appcompat:1.0.0,
androidx.versionedparcelable:versionedparcelable:1.0.0,
androidx.slidingpanelayout:slidingpanelayout:1.0.0,
androidx.fragment:fragment:1.0.0,
androidx.core:core:1.0.0,
androidx.customview:customview:1.0.0,
androidx.swiperefreshlayout:swiperefreshlayout:1.0.0,
androidx.interpolator:interpolator:1.0.0,
androidx.loader:loader:1.0.0,
androidx.drawerlayout:drawerlayout:1.0.0,
androidx.viewpager:viewpager:1.0.0,
androidx.collection:collection:1.0.0,
androidx.cardview:cardview:1.0.0,
androidx.localbroadcastmanager:localbroadcastmanager:1.0.0,
androidx.lifecycle:lifecycle-common:2.0.0,
androidx.arch.core:core-common:2.0.0,
androidx.annotation:annotation:1.0.0,
androidx.lifecycle:lifecycle-livedata:2.0.0,
androidx.legacy:legacy-support-core-ui:1.0.0,
androidx.lifecycle:lifecycle-viewmodel:2.0.0,
androidx.legacy:legacy-support-v13:1.0.0,
androidx.lifecycle:lifecycle-livedata-core:2.0.0,
androidx.legacy:legacy-support-v4:1.0.0,
androidx.media:media:1.0.0,
androidx.arch.core:core-runtime:2.0.0,
androidx.legacy:legacy-support-core-utils:1.0.0,
androidx.documentfile:documentfile:1.0.0,
androidx.vectordrawable:vectordrawable-animated:1.0.0,
androidx.cursoradapter:cursoradapter:1.0.0,
androidx.vectordrawable:vectordrawable:1.0.0,
androidx.lifecycle:lifecycle-runtime:2.0.0,
androidx.coordinatorlayout:coordinatorlayout:1.0.0,
androidx.asynclayoutinflater:asynclayoutinflater:1.0.0,
androidx.print:print:1.0.0
Affected Modules: Application
간단하게 해당 에러는 Project를 AndroidX로 마이그레이션만 해주면 간단하게 해결될 문제입니다.
지금현재 기준 SDK는 31이 최신으로 마이그레이션 하시는 시점의 SDK 버전을 확인하셔야 합니다.
1. Project 폴더에 build.gradle(Module:Application) 에서
- compileSdkVersion을 31로 수정합니다
- targetSdkVersion 이 정의돼있다면 이것도 31로 수정해 줍니다
- 그렇게 수정후 위쪽에 Sync Now를 누르면 에러가 뜰 것이다 그렇다면 Sdk 28이 설치되어 있는지 확인합니다
2. Refactor 메뉴에서 Migration to AndroidX를 눌러서 마이그레이션을 진행합니다.
3. 이후 Project 폴더에 gradle.properties를 열어보면 아래와 같이 정의가 생깁니다.
android.enableJetifier=true
android.useAndroidX=true
여기까지 완료되었다면 마지막으로 Build Clean을 실행한 뒤에
다시 Build를 해주면 에러가 발생하지 않고 컴파일되는 것을 확인하실 수 있습니다.
'안드로이드' 카테고리의 다른 글
[Android] BLE WriteCharacteristic (2) | 2022.01.13 |
---|---|
[Android] No matching client found for package name 에러 해결 (2) | 2022.01.13 |
[Android] Gradle plugin requires 에러 해결 (9) | 2022.01.12 |
[Android] 위젯 먹통 해결 (0) | 2022.01.11 |
[Android] Lint found fatal errors 해결 (0) | 2021.12.27 |
댓글