Android 개발 Warning과 Error
- Android targetSdkVersion
28 -> 29 또는 30으로 올리는 방법
AndroidX로 Migrate 하는 방법
예전 프로젝트를 업데이트 하려고 열어봤더니
targetSdkVersion이 28이다.
구글 정책 변경
새로운 앱은 Android 10(Api 수준 29) 이상을 타겟팅해야 합니다.
모든 앱 업데이트는 Android 10(Api 수준 29) 이상을 타겟팅해야 합니다.
앱 수준의 Gradle 파일을 보자.
targetSdkVersion이 28이하라면 최신 버전으로 올리라는 경고 메시지를 볼 수 있다. (현재 최신은 30)
그래서 targetSdkVersion, compileSdkVersion을
그냥 수동으로 29나 30으로 바꿔주면
아래 implementation에 다 빨간 줄이 뜬다.
implementation 부분을 막 29.0.0 이나 30.0.0 으로 바꾸고 Sync를 돌리면
다음과 같은 에러만 볼 수 있다.
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.
Failed to resolve: com.android.support:support-v4:29.0.0
또는
Failed to resolve: com.android.support:support-v4:30.0.0
29.0.0 또는 30.0.0은 없기 때문이다.
implementation 부분은 28.0.0이 끝이다.
28.0.0으로 계속 쓰고 싶은데요?
-> 안 된다.
구글에서 안 바꾸면 업데이트를 못하게 한다.
그래서 28.0.0 위로 올리려면
-> androidx 1.0.0 으로 다 바꿔줘야 한다.
어떻게 바꾸나요?
복잡해ㅠ
라고 할까봐 자동 전환 기능이 있다.
본격적으로 안드로이드X 로 바꾸자.
메뉴에서 [Refactor] - [Migrate to AndroidX...] 을 눌러주자.
다음과 같은 창이 뜨고 백업도 할 수 있다.
- Migrate를 누르면
- 백업할 폴더를 정하고 분석을 시작하는데
- Do Refactor를 눌러주면 자동으로 AndroidX로 다 바꿔준다.
그러면 끝.
혹시나 안 돌아갈까봐 조마조마 하면서 돌려봤는데
잘 실행된다.
싶었는데
어떤 프로젝트는 오류가 발생한다.
알아보니까
implementation 버전 충돌같은건데
각각 implementation에 따라 해결방법이 다르다.
참 안드로이드든 애플이든
소프트웨어 버전 충돌은 막을 수가 없나보다.
아이폰도 iOS 업데이트를 해보면
기기에 따라 소프트웨어 버전 충돌이 일어난다.
그래서 오류나 렉이 발생한다.
최근에는 iOS 13.xx 버전에서는
키보드 이모티콘 기능 관련하여 일부 기기에서는 심각한 렉이 발생한다.
하지만 애플에서는 수 개월 째 못 고치고 있다.
이 분야 전 세계 최고의 실력자들을 모아 놓은
안드로이드 개발진이나 애플 개발진도
소프트웨어 버전 충돌은 막지 못한다.
그래서 오류가 있는 상태로 소프트웨어를 배포한다.
우리는 모두 불완전한 소프트웨어를 사용하고 있다.
어쩌면 애초에 해결할 수 없는 문제인가보다.
댓글