'Android resource compilation failed' 에러 해결
사건의 발단
Android Studio 3.2가 공식 릴리즈 되었다 하여, 업데이트를 진행하였다.
IDE가 업데이트 되면서 Gradle도 새 버전으로 따라 업데이트를 했다.
그리고 Sync를 하는데... 아니나 다를까 무수히 많은 에러들이 주루룩,, 뜨기 시작했다.
해결을 위한 삽질
GDG Korea 그룹에 질문도 해보고, 구글링을 통해 Stack Overflow던 뭐던 가리지 않고 온갖 커뮤니티를 돌아다녔다.
내게 맞는 해결법은 하나도 없었다. (...) 그냥 짜증이 막 났다..
그러던 중! 에러로그에서 공통된 항목들을 찾을 수 있었다.
바로 'AAPT' 라는 것이었다. 이는, Android Asset Packaging Tool의 줄임말인데, 자세한건 아래 링크에 한꺼번에 첨부하도록 하겠다.
아무튼, 이놈에 대해 검색을 했다. 내가 영어를 잘하는 것도 아니고,, 답변자가 뭐라고 하는지 도통 알아먹을 수가 있어야지.. 오늘도 구글 번역의 힘을 빌렸다.
추가로 찾아보니 'AAPT'나 'AAPT2' 에 대한 에러는 이미 많은 사람들이 겪었던 에러였던것 같다. 이 역시 아래에 있는 해결법으로 해결이 가능하다!
와! 해결했다!
간단하다. 허탈하면서도 마음속에 묶여있던 뭔가 풀리는 이 기분.. 항상 짜릿하다. 이 맛에 프로그래밍 하지 않는가!(ㅋㅋㅋㅋ)
gradle.propertise를 열어 아래 코드를 한 줄만 추가하면 된다.
android.enableAapt2=false
그리고 빌드를 했다. 정말 다행히도 에러는 없었다만, IDE놈이 겁을 주기 시작했다.
The option 'android.enableAapt2' is deprecated and should not be used anymore.
Use 'android.enableAapt2=true' to remove this warning.
It will be removed at the end of 2018..
위와 같은 것들이(?) 붉은 글씨로 나를 위협한다. 2018년이 지나면 뭐 어쩔건데...
결론
지금 당장에야 애플리케이션 개발에는 문제가 없겠다만, 해가 지나면 어떻게 될지 궁금하다.
아마, 이전 프로젝트와 새 프로젝트간 호환성(?)의 문제가 가장 크지 싶다.(구글링 하면서 본 것 같다.)
맞는 말인것 같기도 한게, 최근 생성한 프로젝트들은 저 코드를 추가하지 않아도 되기 때문이다.
뭐 저 AAPT에 대한 정보를 추가로 알게 된다면 바로 포스팅 해서 공유할 수 있도록 하겠다.
내용 추가 및 수정
관련 정보를 더 찾아보았다.
Gradle이 3.0.0 이상으로 올라가게 되면서, AAPT는 쓰이지 않고 AAPT2가 기본으로 사용되며, 활성화 된다고 한다. 이 과정에서 이전 Gradle버전에서 사용했던 것들과 호환이 되지 않아 빌드 오류가 나는 것이다.
이를 임시방편으로 라도 해결하기 위한 방법이 위에서 제공한 false옵션을 통해 비활성화 하는 것이다.
그러나, 이마저도 2018년이 끝나면 비활성화 될 예정이니, 아래 링크에서 마이그레이션 가이드를 보며 마이그레이션을 진행하여야 한다.
결론적으로는 AAPT2를 사용하여야 한단 소리다.
참고 사이트
'Android' 카테고리의 다른 글
Android Permission Dispatcher로 권한 얻기 (1) | 2018.10.08 |
---|---|
AndroidX 사용하기 (0) | 2018.10.05 |
18:9 이상 화면비 지원하기 (4) | 2018.08.02 |
Google Play Service Check(확인)하기 (0) | 2018.07.25 |
인터넷 연결 상태 확인하기 (0) | 2018.07.23 |
댓글
이 글 공유하기
다른 글
-
Android Permission Dispatcher로 권한 얻기
Android Permission Dispatcher로 권한 얻기
2018.10.08 -
AndroidX 사용하기
AndroidX 사용하기
2018.10.05 -
18:9 이상 화면비 지원하기
18:9 이상 화면비 지원하기
2018.08.02 -
Google Play Service Check(확인)하기
Google Play Service Check(확인)하기
2018.07.25