본문 바로가기
Android

낮은 그래들 버전의 안드로이드 14 버전 타겟팅

by 일용직 코딩노동자 2024. 6. 20.
728x90
반응형

지금부터 5년전에 만든 프로젝트가 있는데 안드로이드 14를 타겟팅하면 에러를 뱉어낸다.

 

현재 그래들 버전이 낮아서 14를 타겟팅 할 수 없다고 한다...

 

AAPT2 process unexpectedly exit

이런 에러도 같이 보였다..

 

 

그래들 버전을 올리기 위해

 

안드로이드 스튜디오 내부의 해당 기능(AGP Upgrade Assisteant)을 통해 그래들 버전을 올려주었다.

 

하지만 또 다른 문제가 나타났다.

 

kxml 관련 파일이 누락되었다나 뭐라나.. 클래스를 찾을수 없다고한다..

 

구글링과 스텍오버플로우 형님들 답변을 쫒아가 이것저것 proguard-rules.pro파일에 추가 해주었다.

 

-keep class org.kxml2.io.KXmlParser { *; }
-keep class org.kxml2.io.KXmlSerializer { *; }

-dontwarn org.xmlpull.v1.**
-dontwarn org.kxml2.io.**
-dontwarn android.content.res.**
-dontwarn org.slf4j.impl.StaticLoggerBinder

-keep class org.xmlpull.** { *; }
-keepclassmembers class org.xmlpull.** { *; }

 

이렇게 해당 오류가 해결되었고 빌드까지 성공적으로 끝마쳤으나...

 

이번에는 레트로핏 관련 에러가 쏟아졌다.. ㅠㅜㅜ

 

Call return type must be parameterized as Call<Foo> or Call<? extends Foo>
Unable to create call adapter for interface retrofit2.Call

 

이렇게 2가지의 에러가 같이 나타났는데..

 

이번에도 최고사수 구글님의 힘을 빌려 구글링을 시도하였다.

 

레트로핏의 버전을 올려보라는 이야기가 있어 

 

필자는 2.1.x 버전을 사용했어서

 

2.9.0으로 버전을 올려보았지만 해당 에러는 사라지지 않았다..

 

여기저기 다시 뒤져서 이번에도 마찬가지로

 

proguard-rules.pro파일에 

 

-keepclasseswithmembers class * {
    @retrofit2.http.* <methods>;
}

-keep class retrofit2.** { *; }
-keepattributes *Annotation*
-keep class com.squareup.okhttp.** { *; }
-keep interface com.squareup.okhttp.** { *; }
-keep class okhttp3.** { *; }
-keep interface okhttp3.** { *; }

를 추가해주었더니 해결되었다.

 

솔직히 저게 뭔지 잘 모르겠다..

 

구글님 안드로이드 버전 이제 그만...올려주세요.. 저 죽어요!!

728x90
반응형

댓글