我们有一个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,一切正常。
有没有人遇到过这个问题?
答案 0 :(得分:40)
这对我有用:
这是由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
P.S。仅在Mac上测试过。
答案 1 :(得分:38)
这是由错误的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或更高版本
答案 2 :(得分:14)
此处报告有关libpng的警告但可以忽略
https://code.google.com/p/android/issues/detail?id=77704
项目成员说,他们建立的新libpng对颜色配置文件更为严格。他们将在即将发布的版本中修复此问题,但这不应成为问题。
21.0.2解决了其他问题。
答案 3 :(得分:5)
我找到了一种从png文件中删除颜色配置文件的方法,以避免使用pngcrush Wikipedia about pngcrush发出此警告。
如果您正在使用MacOS,您还可以使用名为ImageOptim的工具来运行pngcrush并动态替换剥离的.png文件。
答案 4 :(得分:2)
21.0.1也打破了我的项目 - aapt不会向APK添加任何字符串资源。 通过编辑 project.config :
,恢复为20.0.0sdk.buildtools=20.0.0
答案 5 :(得分:1)
我在构建工具21.0.0时遇到了同样的问题,但在更新到21.0.1之后,它已经修复了。
答案 6 :(得分:1)
如果由于某种原因手动从文件中删除元数据是不切实际的,您可以通过在build.gradle中设置以下内容来禁用新的更严格的png破碎机。
aaptOptions.useNewCruncher = false
答案 7 :(得分:0)
我得到了相同的警告,即使使用构建工具22.0.1也难以接受。我勾选了选项在设置>编译器中并行编译独立模块,这导致了多个aapt运行实例并且构建成功。
答案 8 :(得分:-4)
删除com.android.support:appcompat-v7:xxx
依赖项