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以降
これは私のために働いた:
これは、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のみでテスト済み。
Libpngに関する警告はここで報告されますが、無視してかまいません
https://code.google.com/p/Android/issues/detail?id=77704
プロジェクトメンバーは、彼らが構築した新しいlibpngはカラープロファイルに関してより厳密だと言います。彼らは今後のリリースでこれを修正しますが、これは問題ではないはずです。
また、21.0.2は他の問題を解決します。
この警告を避けるために、pngcrush Wikipedia about pngcrush を使用して、PNGファイルからカラープロファイルを削除する方法を見つけました。
MacOSで作業している場合は、 ImageOptim というツールを使用してpngcrushを実行し、ストリップされた.pngファイルをその場で置き換えることもできます。
21.0.1は私のプロジェクトも壊します-aaptは文字列リソースをAPKに追加しません。 project.config:を編集して、20.0.0に戻しました。
sdk.buildtools=20.0.0
何らかの理由でファイルからメタデータを手動で除去することが実用的でない場合、build.gradleで以下を設定することにより、新しくより厳密なpngクラッシャーの使用を無効にすることができます。
aaptOptions.useNewCruncher = false
ビルドツール21.0.0でも同じ問題がありましたが、21.0.1に更新した後、修正されました。
私は同じ警告を受け取っていましたが、ビルドツール22.0.1でもAaptが動けなくなりました.Settings> compilerでオプションCompile独立モジュールを並列にチェックすると、Aaptの複数のインスタンスが実行され、ビルドが成功しました。