60

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

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

4

9 回答 9

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

PS 仅在 Mac 上测试。

于 2015-03-20T08:29:56.800 回答
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"
    

根据需要将版本号替换为最新版本号。

buildToolsVersion21.0.2,推荐21.1.2或更高版本

于 2014-10-23T18:51:20.550 回答
14

此处报告了有关 libpng 的警告,但可以忽略

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

项目成员说他们构建的较新的 libpng 对颜色配置文件更加严格。他们将在即将发布的版本中解决此问题,但这应该不是问题。

21.0.2 解决了其他问题。

于 2014-10-22T11:00:06.863 回答
5

我找到了一种从 png 文件中删除颜色配置文件的方法,以避免使用 pngcrush Wikipedia about pngcrush来避免此警告。

如果您在 MacOS 上工作,您还可以使用名为ImageOptim的工具来运行 pngcrush 并即时替换剥离的 .png 文件。

于 2015-03-27T13:13:04.363 回答
2

21.0.1 也破坏了我的项目 - aapt 不会向 APK 添加任何字符串资源。通过编辑project.config恢复到 20.0.0 :

sdk.buildtools=20.0.0
于 2014-10-20T20:04:09.700 回答
1

我在构建工具 21.0.0 时遇到了同样的问题,但在更新到 21.0.1 后它已得到修复。

于 2014-10-21T20:53:43.423 回答
1

如果由于某种原因手动从文件中删除元数据不切实际,您可以通过在 build.gradle 中设置以下内容来禁用新的更严格的 png 粉碎器。

aaptOptions.useNewCruncher = false
于 2016-02-21T17:15:09.440 回答
0

我收到了同样的警告,即使使用构建工具 22.0.1,aapt 也卡住了。我在设置>编译器中勾选了并行编译独立模块选项,这导致多个 aapt 实例运行并且构建成功。

于 2015-06-17T09:30:47.603 回答
-4

移除com.android.support:appcompat-v7:xxx依赖

于 2015-01-27T05:39:58.770 回答