IT TIP

빌드 도구를 21.0.1로 업그레이드하는 Android Gradle 프로젝트 : aapt에서 예외 발생

itqueen 2020. 12. 4. 21:39
반응형

빌드 도구를 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"
    

필요에 따라 버전 번호를 최신 번호로 바꿉니다.

이전 buildToolsVersion21.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종속성 제거

참고 URL : https://stackoverflow.com/questions/26446610/android-gradle-project-upgrading-build-tools-to-21-0-1-aapt-throws-exception

반응형