!!! 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 에서는 보통 시스템 환경변수 설정에서 직접 입력하기도 하지요.
'Android개발 > Android Studio' 카테고리의 다른 글
[Android][Studio] 설정 파일 경로 바꾸기 (config, system) (0) | 2020.02.11 |
---|---|
[Android][Studio] Run ... with Coverage 시 오류 - java.lang.reflect.InvocationTargetException (0) | 2020.02.11 |
[Android][Studio] Android SDK 및 gradle 경로 변경 (0) | 2020.02.07 |
Android Studio 에서 gradle sync가 안되는 문제 수정 (0) | 2019.08.27 |