Android Gradle Project将构建工具升级到21.0.1:aapt抛出异常

时间:2014-10-19 02:14:47

标签: android gradle android-gradle build-tools

我们有一个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,一切正常。

有没有人遇到过这个问题?

9 个答案:

答案 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.0
sdk.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依赖项