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

ffd*_*ani 60 android build-tools gradle android-gradle-plugin

我们有一个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
Run Code Online (Sandbox Code Playgroud)

我有一些警告说:

libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
Run Code Online (Sandbox Code Playgroud)

我修复了这些,但在appcompat-v7库中还有6个.

如果我将构建工具版本恢复为20,一切正常.

有人遇到过这个问题吗?

mar*_*dan 40

这对我有用:

它是由像Photoshop这样的工具添加的元数据,甚至没有得到Android的尊重.脱掉它.

brew install exiftool
find . -path '*src/main/res/*' -name '*.png' -exec exiftool -overwrite_original -all= {} \;
Run Code Online (Sandbox Code Playgroud)

资料来源:https://groups.google.com/forum/#! msg/ adt- dev/ rjTQ_STR3OE/-UcNQRISTKsJ

PS仅在Mac上测试过.

  • 实际命令(来自提供的链接)是`find.-path'*src/main/res/*'-name'*.png'-exec exiftool -overwrite_original -all = {} \;`没有`path`中的`*`,命令不起作用 (2认同)

Bin*_*abu 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"
    
    Run Code Online (Sandbox Code Playgroud)

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

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

  • 更新到21.1.1后,我也得到同样的错误 (23认同)
  • 甚至还有21.1.2 (12认同)
  • 仍然发生在22.0.1 (8认同)
  • 仍然发生在23.0.0 rc3 (8认同)
  • 仍然发生在22.1.2 (7认同)
  • 仍然发生在23.0.1 (6认同)
  • buildTools 22.0.0也存在同样的问题,只需使用22.0.1 (3认同)

alb*_*elu 14

这里报告了关于libpng的警告,但可以忽略

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

项目成员说他们建立的新libpng对颜色配置文件更严格.他们将在即将发布的版本中修复此问题,但这不应成为问题.

21.0.2解决了其他问题.

  • 我绝对使用22.0.1构建工具,我遇到了问题. (3认同)

Noy*_*oya 5

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

如果您正在使用MacOS,您还可以使用名为ImageOptim的工具来运行pngcrush并动态替换剥离的.png文件.