执行aapt时出错:返回代码132问题

时间:2014-12-31 02:44:57

标签: android adt android-sdk-tools aapt

自从大约一个月前更新我的Android SDK以来,我遇到了无穷无尽的问题,让我无法使用非功能性开发环境。

最初问题出在v7-appcompat支持库中,它引发了大约100个与各种资源相关的错误。很明显,他们是与Android v5相关的资源,而对Stack Overflow的快速搜索意味着我意识到v7-appcompat库的目标是API 19.将相关设置更改为目标API 21修复了资源错误。

然而,自那时以来我遇到的问题是任何建立图书馆项目的尝试都会很快完成......

  

执行aapt时出错:返回代码132

...并且图书馆项目没有正确构建。

我最初的设置是使用Eclipse Kepler,但后来我尝试了Android Studio v1.0.1(相同的aapt错误代码),今天我将Eclipse Luna安装到Kepler的一个单独目录中,并安装了新的ADT和SDK。每个版本的Eclipse也都有自己的工作区。

所以基本上我有两个版本的Eclipse(每个版本都有自己的ADT / SDK设置和工作区)和Android Studio都有自己的目录结构,这三个版本都有同样的问题。

问题是,我该如何诊断这个问题?共同点显然是一个问题,但我不知道如何解决它。

我在Debian Wheezy(32位)设置上运行,并且我已正确安装了Java 1.7(按照建议)。

2 个答案:

答案 0 :(得分:2)

在某些32位系统上似乎存在问题。它在app:processDebugResources上抛出一个错误132,这是当aapt'准备包含在apk包中的'crunching'png文件时。您可以在https://code.google.com/p/android/issues/detail?id=75110

查看更多详情

有些人报告称“修复”有问题的png文件(例如通过在Gimp中打开并保存)可以解决问题。当它们“内置”以进行比较时,它当然要难得多。

在详细介绍之前,您可以说一下您是否确实在32位处理器上运行,如果是,那么哪一个?用lscpu找出来。

好的,如果有人有兴趣,这是一个解决方法,这样你就可以使用你的旧笔记本电脑用Android Studio构建应用程序。基本上你删除appcompat-v7库中的所有png文件,然后使用两个版本的aapt进行构建。育。

  1. 找到appcompat-v7.aar,它位于~/Android/Sdk/extras/android/m2repository/com/android/support/appcompat-v7/22.0.0

  2. 之类的地方
  3. 将它(真的是一个zip文件)解压缩到一个临时目录

  4. 删除所有png文件:find . -name "*.png" -exec mogrify -strip {} \;

  5. 重新打包文件:pushd appcompat-v7-22.0.0; zip -r ../appcompat-v7-22.0.0.aar; popd
  6. 移动新的aar文件以替换原始文件(这可能足以获得良好的构建但不适合我)
  7. 现在找到旧版本的aapt(我去了https://dl-ssl.google.com/android/repository/build-tools_r17-linux.zip
  8. 将您刚接到的zip中的aapt版本复制到Android / Sdk / build-tools目录中作为aapt-17或其他
  9. 将原来的aapt重命名为aapt-0
  10. 在aapt的两个版本之间交替(例如ln -sf aapt-17 aapt)你会发现你可以获得良好的构建。一个版本将在一个地方失败,另一个版本将在另一个版本中失败,让你经历所有的颠簸。
  11. 我知道它很臭但我很绝望!!

答案 1 :(得分:0)

这就是我所做的,这足以获得成功的构建。灵感来自peterthevicar的答案。

  • 将sdk降级到19.1.0,您可以从studio安装它,然后在build.gradle中更改buildToolsVersion
  • 将aapt重命名为aapt.bin,并在其位置放置一个shell脚本,仅拦截png crunch(args:s -i infile -o outfile)并执行简单的cp。会把它粘贴在这里,但SO的语法突出显示suuuucks