Things take time

[Android] 안드로이드 스튜디오 3.1.3 최신 버전 다운로드시 + Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details + Failed to execute aapt2 본문

Android(Error)

[Android] 안드로이드 스튜디오 3.1.3 최신 버전 다운로드시 + Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details + Failed to execute aapt2

겸손할 겸 2018. 6. 18. 13:40

[개요]


http://g-y-e-o-m.tistory.com/63 에서 기록을 해 두었지만, 이 에러가 발생한 경우 보통 아래의  코드를 그래들 프로퍼티의 Project단 파일에 기록해두면 처리되었다.

android.enableAapt2=false

그럼에도 불구하고!

오늘 스튜디오 업데이트도 되지 않아 삭제 후 재설치하는 도중, 위의 에러를 또 만났다.


아무렇지 않게 위의 코드를 입력했으나 해결되지 않는 문제 발생



[과정]



처음에 위의 에러를 발견한 뒤, false 부분을 넣어주고 sync했더니



이제 deprecated된단다. 2018까지만 쓰라는데.. 어쨌든 경고(warning)이므로 무시하고 실행



그러나 위의 에러 발생


[방법]


간단히 말해서, 위의 방식대로 사용하는것은 일반적인 Run 빌드의 경우이나, 스튜디오가 3점대로 올라가면서 Instant Run이란 기능이 생겼다. 근데 이 인스턴트 빌드랑 얘랑 쌍으로 묶어다니는 애라 얘도 사용하지 않아야한다는 것이다.


이전 스튜디오 버전에는 얘가 enable이 아니었던 모양.. 새로 깐 안드로이드 스튜디오 3.1.3 에는 자동적으로 default enabled되어있다.


이를 해제하고 다시 빌드하면 문제 없다.


[Ctrl + Alt + S] => 에서 아래의 instant run 부분의 체크박스를 해제하고 실행하면 된다.





[잡담]


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년도 까지밖에 해결방법이 되지 않을 듯 하다. 그럼 어떻게 해야할까?

일단 구글링을 통해 알아본 결과,


앞으로 나오게 될 Gradle Plugin에는 android.enableAapt2 = false란 플래그가 제거된 상태의 플러그인이 출시될 것이라 한다. 즉, 최신 Google Gradle Plugin을 사용하면 자연적으로 해결될 것이라는 것.


하반기가 되면 자동 이슈가 될 것이므로, 나는 따로 작업하진 않았다. 



[참고]


최신 스튜디오를 다운받고 보니, Gradle 부분에서도 변경된 점이 많이 있다. 3.4이상부터는 아래의 링크를 참조하여 보면 되겠다.


라이브러리를 import하기 위해 사용했던 compile이란 단어가 implemetation (참조)로 변경되었다는 점등 여러 점을 확인할 수 있다.


https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration?utm_source=android-studio#new_configurations


현재 Gradle 버전 체크는 

[Ctrl + Alt + Shift + S] 즉, File -> Project Structure의 Project 탭에서 확인 가능하다. 2018/06/18 현재 4.4가 최신으로 되어있다.



[2018/11/15]


옛날 프로젝트를 열어야 해서 다시 열어보니 위와 같은 에러 발생!


android.enableAapt2=false

이 부분을 넣고 컴파일해보니 나타나는 또 다른 에러..

Process 'command aapt.exe'' finished with non-zero exit value 1

귀찮네 진짜..


1. 스튜디오 내 하단 Terminal에서 아래의 명령어 입력 

gradlew assembleDebug --info

그리고 로그창을 분석한다!! 이 방법을 제일 추천한다.

일단 이 문장 하나로 현재 패키지를 분석해주기 때문에, 어디서 난 에러이고 어떤 글자에 오류가 있는지 나온다.

 

그래서 결국 해결 완료!