自从大约一个月前更新我的 Android SDK 以来,我遇到了无穷无尽的问题,让我的开发环境无法正常工作。
最初问题出在 v7-appcompat 支持库,它抛出了大约 100 个与各种资源相关的错误。很明显它们是与 Android v5 相关的资源,并且在 Stack Overflow 上快速搜索意味着我意识到 v7-appcompat 库的目标是 API 19。将相关设置更改为目标 API 21 修复了资源错误。
但是,从那时起我遇到的问题是任何试图快速构建库项目的尝试都...
Error executing aapt: Return code 132
...并且库项目未正确构建。
我最初的设置是使用 Eclipse Kepler,但后来我尝试了 Android Studio v1.0.1(相同的 aapt 错误代码),今天我将 Eclipse Luna 安装到与 Kepler 不同的目录中,并全新安装了 ADT 和 SDK。每个版本的 Eclipse 也有自己的工作区。
所以基本上我有两个版本的 Eclipse(每个版本都有自己的 ADT/SDK 设置和工作区)和 Android Studio 有自己的目录结构,这三个版本都存在相同的问题。
问题是,我该如何诊断这个问题?公分母显然是一个 aapt 问题,但我不知道如何解决它。
我在 Debian Wheezy(32 位)设置上运行并且我已经正确安装了 Java 1.7(按照推荐)。
最佳答案
aapt 在某些 32 位系统上似乎存在问题。它在 app:processDebugResources 上抛出错误 132,这是当 aapt 正在“处理”准备好包含在 apk 包中的 png 文件时。您可以在 https://code.google.com/p/android/issues/detail?id=75110 查看更多详细信息
有些人报告说,“修复”有问题的 png 文件(例如,通过在 Gimp 中打开并保存)可以解决问题。当它们“内置”到 appcompat 中时,当然更难做到。
在进入细节之前,您能说一下您是否确实在 32 位处理器上运行,如果是的话是哪一个?使用 lscpu 找出答案。
好吧,如果有人感兴趣,这里有一个解决方法,您可以使用旧笔记本电脑通过 Android Studio 构建应用程序。基本上,您删除了 appcompat-v7 库中的所有 png 文件,然后使用两个版本的 aapt 进行构建。嗯。
找到类似于
~/Android/Sdk/extras/android/m2repository/com/android/support/appcompat-v7/22.0.0
的 appcompat-v7.aar将它(实际上是一个 zip 文件)解压到一个临时目录
去除所有 png 文件:
找到 . -name "*.png"-exec mogrify -strip {}\;
- 再次打包备份文件:
pushd appcompat-v7-22.0.0;压缩-r ../appcompat-v7-22.0.0.aar;弹出
- 移动新的 aar 文件以替换原始文件(这可能足以获得良好的构建,但它不适合我)
- 现在找到一个旧版本的 aapt(我去了https://dl-ssl.google.com/android/repository/build-tools_r17-linux.zip)
- 从您刚刚获取的 zip 文件中将 aapt 版本复制到 Android/Sdk/build-tools 目录中,作为 aapt-17 或其他版本
- 将原来的aapt重命名为aapt-0
- 在 aapt 的两个版本之间交替(例如
ln -sf aapt-17 aapt
),您应该会发现您可以获得良好的构建。一个版本会在一个地方失败,另一个会在另一个地方失败,让您克服所有障碍。 - 我知道它很臭,但我很绝望!!
关于android - 执行 aapt 时出错 : Return code 132 problems,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27715506/