web-dev-qa-db-ja.com

Android Gradle Projectビルドツールを21.0.1にアップグレード: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に戻すと、すべて正常に機能します。

誰かがこの問題に遭遇しましたか?

60
ffddani

これは、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以降

38
Binoy Babu

これは私のために働いた:

これは、Photoshopなどのツールによって追加されたメタデータであり、Androidでも尊重されていません。それを剥ぎます。

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

追伸Macのみでテスト済み。

40
marius bardan

Libpngに関する警告はここで報告されますが、無視してかまいません

https://code.google.com/p/Android/issues/detail?id=77704

プロジェクトメンバーは、彼らが構築した新しいlibpngはカラープロファイルに関してより厳密だと言います。彼らは今後のリリースでこれを修正しますが、これは問題ではないはずです。

また、21.0.2は他の問題を解決します。

14
albodelu

この警告を避けるために、pngcrush Wikipedia about pngcrush を使用して、PNGファイルからカラープロファイルを削除する方法を見つけました。

MacOSで作業している場合は、 ImageOptim というツールを使用してpngcrushを実行し、ストリップされた.pngファイルをその場で置き換えることもできます。

5
Noya

21.0.1は私のプロジェクトも壊します-aaptは文字列リソースをAPKに追加しません。 project.config:を編集して、20.0.0に戻しました。

sdk.buildtools=20.0.0
2
Vaiden

何らかの理由でファイルからメタデータを手動で除去することが実用的でない場合、build.gradleで以下を設定することにより、新しくより厳密なpngクラッシャーの使用を無効にすることができます。

aaptOptions.useNewCruncher = false
1
blunden

ビルドツール21.0.0でも同じ問題がありましたが、21.0.1に更新した後、修正されました。

1
MrBrightside

私は同じ警告を受け取っていましたが、ビルドツール22.0.1でもAaptが動けなくなりました.Settings> compilerでオプションCompile独立モジュールを並列にチェックすると、Aaptの複数のインスタンスが実行され、ビルドが成功しました。

0
Prasenjeet S.