빌드 도구를 21.0.1로 업그레이드하는 Android Gradle 프로젝트 : aapt에서 예외 발생
Android Gradle 프로젝트가 있습니다. 오늘은 Android 빌드 도구 버전을 20에서 21.0.1로 업그레이드하고 싶었지만 이제 aapt가 실패합니다.
* What went wrong:
Execution failed for task ':myproject-android:processDebugResources'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
c:\_DEVELOP\AndroidSDK\sdk\build-tools\21.0.1\aapt.exe package -f --no-crunch -I c:\_DEVELOP\AndroidSDK\sdk\platforms\android-16\android.jar -M D:\_MY_PROJECT\trunk\myproject_bin\gradle\build\re
lease\myproject-android\intermediates\manifests\full\debug\AndroidManifest.xml -S D:\_MY_PROJECT\trunk\myproject_bin\gradle\build\release\myproject-android\intermediates\res\debug -A D:\_MY_PROJECT\tr
unk\myproject_bin\gradle\build\release\myproject-android\intermediates\assets\debug -m -J D:\_MY_PROJECT\trunk\myproject_bin\gradle\build\release\myproject-android\generated\source\r\debug -F D:\_PIVOSC
ORE_P4\trunk\myproject_bin\gradle\build\release\myproject-android\intermediates\res\resources-debug.ap_ --debug-mode --custom-package com.myproject.app -0 apk --output-text-symbols D:\_MY_PROJECT\trunk\
myproject_bin\gradle\build\release\myproject-android\intermediates\symbols\debug
Error Code:
255
다음과 같은 경고가있었습니다.
libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
나는 그것들을 고쳤지만 appcompat-v7 라이브러리에 6 개가 더 있습니다.
빌드 도구 버전을 20으로 되 돌리면 모든 것이 잘 작동합니다.
이 문제를 겪은 사람이 있습니까?
이것은 결함으로 인해 발생합니다 aapt
. 21.0.0에서도 비슷한 문제가있었습니다 ( Error Code: -1073741819
). build-tools
문제를 해결 하려면 다시 업데이트해야 합니다.
SDK 관리자를 열고
build-tools 21.1.2
.그런 다음 build.gradle을 다음과 같이 변경하십시오.
apply plugin: 'com.android.application' android { compileSdkVersion 21 buildToolsVersion "21.1.2"
필요에 따라 버전 번호를 최신 번호로 바꿉니다.
이전 buildToolsVersion
21.0.2, 권장 버전은 21.1.2 이상입니다.
이것은 나를 위해 일했습니다.
Android에서도 인정하지 않는 Photoshop과 같은 도구에 의해 추가 된 메타 데이터입니다. 벗겨.
brew install exiftool
find . -path '*src/main/res/*' -name '*.png' -exec exiftool -overwrite_original -all= {} \;
출처 : https://groups.google.com/forum/#!msg/adt-dev/rjTQ_STR3OE/-UcNQRISTKsJ
PS는 Mac에서만 테스트되었습니다.
libpng에 대한 경고가 여기에보고되지만 무시할 수 있습니다.
https://code.google.com/p/android/issues/detail?id=77704
프로젝트 멤버는 그들이 만든 새로운 libpng가 색상 프로필에 대해 더 엄격하다고 말합니다. 향후 릴리스에서이 문제를 해결할 예정이지만 문제가되지 않습니다.
그리고 21.0.2는 다른 문제를 해결합니다.
pngcrush 에 대한 pngcrush Wikipedia 를 사용하여이 경고를 피하기 위해 png 파일에서 색상 프로필을 제거하는 방법을 찾았습니다 .
MacOS에서 작업하는 경우 ImageOptim 이라는 도구를 사용하여 pngcrush를 실행하고 제거 된 .png 파일을 즉시 교체 할 수도 있습니다 .
21.0.1은 내 프로젝트도 중단합니다. aapt는 APK에 문자열 리소스를 추가하지 않습니다. project.config 를 편집하여 20.0.0으로 되돌 렸습니다 .
sdk.buildtools=20.0.0
빌드 도구 21.0.0에서 동일한 문제가 발생했지만 21.0.1로 업데이트 한 후 수정되었습니다.
어떤 이유로 파일에서 메타 데이터를 수동으로 제거하는 것이 실용적이지 않은 경우 build.gradle에서 다음을 설정하여 새롭고 더 엄격한 png 크러셔의 사용을 비활성화 할 수 있습니다.
aaptOptions.useNewCruncher = false
동일한 경고가 표시되고 빌드 도구 22.0.1에서도 aapt가 멈췄습니다. 설정> 컴파일러에서 병렬로 독립 모듈 컴파일 옵션을 선택하여 aapt 인스턴스가 두 개 이상 실행되고 빌드가 성공했습니다.
com.android.support:appcompat-v7:xxx
종속성 제거
'IT TIP' 카테고리의 다른 글
클러스터를 사용하여 Socket.IO를 여러 Node.js 프로세스로 확장 (0) | 2020.12.04 |
---|---|
Visual Studio 프로젝트의 ipch 파일 (0) | 2020.12.04 |
도메인 중심 설계의 검증 (0) | 2020.12.04 |
MySQL에서 VARCHAR (20000)이 유효합니까? (0) | 2020.12.04 |
하위 클래스에서 equals () 및 hashCode () 재정의… 수퍼 필드 고려 (0) | 2020.12.04 |