!!! Android 개발에 있어 많고 많은 빌드 에러 중 Windows 환경에서 종종 발생하는 에러에 대한 내용입니다 !!!!

개인적으로 Android 개발에 있어서 Android Studio에서 Build나 Run 하는 경우가 많았는데요.

주로 툴의 UI 버튼등을 단순히 눌러서 해왔죠.

하지만 Terminal 에서 Build 가 필요할 때도 있지요.

기껏 Terminal 에서 Build 하는 명령어 등을 검색 후 실행했을때 에러가 뜬다면 참 번거럽겠죠.

그 수많은 에러 중 아래의 에러 문구시에 대한 해결책입니다.

C:\Users\?????\.gradle\caches\transforms-1\files-1.1\appcompat-v7-28.0.0.aar\50aa894a55f6ff1ab5e7586893bfabff\res\layout\abc_dialog_title_material.xml: error: file not found.
C:\Users\?????\.gradle\caches\transforms-1\files-1.1\appcompat-v7-28.0.0.aar\50aa894a55f6ff1ab5e7586893bfabff\res\drawable\abc_spinner_textfield_background_material.xml: error: file not found.

> Task :mobile:mergeDebugResources
Error: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details


FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':mobile:mergeDebugResources'.
> Error: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 18s
14 actionable tasks: 6 executed, 8 up-to-date

D:\HelloWorld>

 

어디가 문제일까요?

그냥 느낌적인 느낌으로 눈에 들어오는 부분이 있을 겁니다?????

C:\Users\?????\.gradle\caches\transforms-1\files-1.1\appcompat-v7-28.0.0.aar\50aa894a55f6ff1ab5e7586893bfabff\res\layout\abc_dialog_title_material.xml: error: file not found.

 

gradle 캐시에 외부 라이브러리들을 저장해놓고 빌드시 사용하는 것으로 보이죠.

그 경로에 한글이 들어가서 문제가 발생한 것으로 보이고요.

그럼 왜 굳이 gradle은 캐시 위치를 저리 잡는지에 대한 궁금증이 생깁니다.

https://docs.gradle.org/current/userguide/build_environment.html#sec:gradle_environment_variables

gradle docs에서 뒤져보니 이런 문구가 있네요.

GRADLE_USER_HOME

Specifies the Gradle user home directory (which defaults to $USER_HOME/.gradle if not set).

맞습니다.

저는 GRADLE_USER_HOME 을 설정하질 않았었네요.

Android Studio에서는 Setting 에서 설정이 가능해보이네요.

Gradle home 항목이 그걸로 보이는데... 사실 안해봐서 모릅니다;;

일단 저는 Terminal 이나 Windows CMD 창에서 작업을 시작했으니 그 곳에서 설정을 해봅니다.

Windows에서 환경변수를 보는 것이 set이라는 명령어를 사용하네요.

> set
ALLUSERSPROFILE=C:\ProgramData
ANDROID_HOME=d:\Android\sdk\
ANDROID_SDK_HOME=d:\Android\sdk\
APPDATA=C:\Users\유저명\AppData\Roaming
classpath=%classpath%;
...

참고로 GRADLE_USER_HOME 은 안보이네요.

저는 d:\.gradle\ 경로로 지정을 해보겠습니다.

>set GRADLE_USER_HOME=d:\.gradle\
>set
...
GRADLE_USER_HOME=d:\.gradle\
...

이제 되었네요.

다시 Terminal 에서 빌드를 진행해보면 두가지의 경우가 발생할 겁니다.

잘 되거나.. 다른 에러가 발생하겠죠.

Good Luck!!

+) Windows 에서는 보통 시스템 환경변수 설정에서 직접 입력하기도 하지요.

+ Recent posts