我知道周围有很多这些主题,但似乎对我的情况没有帮助,也没有准确描述。最好的类似是aapt not found under the right path。
我的问题是我可以使用 Eclipse 进行整个晚上的编程、编译和使用我的设备,然后突然我为我当前的项目收到“错误执行 aapt”,当然 R.java 不再(正确)生成了。然后我重新启动 Eclipse,一切都消失了。但是,我平均每天会看到一次。
我最近切换到 amd64 并安装了最新的 Android-2.3 SDK 和匹配工具。我知道现在有一个平台工具文件夹,它有一个 aapt 版本,应该独立工作 SDK 版本。起初,我已按照 SDK 网站上的说明将此目录添加到我的 PATH 中。我也尝试过不将它添加到我的路径并制作链接平台/android-9/tools,以便每个 SDK 版本都可以使用它自己的旧副本。不用说,platform-tools/aapt 在那里并且拥有正确的权限,而且我已经能够随时在命令行上执行它。
当我确实编写了一个错误的 xml 文件或排序并适当地得到一个错误时,我看到一个额外的行,上面写着“aapt:/lib32/libz.so.1:没有可用的版本信息”。我正在运行一个最近的 Gentoo linux 系统。我已经安装了所有东西来支持 amd64 上的 x86,但是为了确定,重新出现了 emul-linux-x86-baselibs 和 zlib。问题仍然存在。我确实看到一些页面对一些 zlib 错误感到恐惧,但我不确定这是否相关。我意识到我不在参考 Ubuntu 平台上,但肯定差异不会那么大吗?
这很可能是 aapt 或工具本身的错误。为什么会突然停止工作?我还体验到 R.java 中的 id 不正确,即简单的 findViewById() 代码会因为混合 id 一次而给出 ClassCastExceptions,然后在没有任何更改的情况下完美地工作,只有一个“干净的项目”,在之后一个失败的 aapt。
最后,我在 aapt 上运行了一些命令,似乎没有添加任何额外信息:
#ldd aapt
./aapt: /lib32/libz.so.1: no version information available (required by ./aapt)
linux-gate.so.1 => (0xffffe000)
librt.so.1 => /lib32/librt.so.1 (0x4f864000)
libpthread.so.0 => /lib32/libpthread.so.0 (0x4f849000)
libz.so.1 => /lib32/libz.so.1 (0xf7707000)
libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.4.4/32/libstdc++.so.6 (0x415e9000)
libm.so.6 => /lib32/libm.so.6 (0x4f876000)
libgcc_s.so.1 => /lib32/libgcc_s.so.1 (0x4fac6000)
libc.so.6 => /lib32/libc.so.6 (0x4f5ed000)
/lib/ld-linux.so.2 (0x4f5ca000)
#file aapt
aapt: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, not stripped
有人能说出我的配置有什么问题吗?它可能闻起来像一个错误(否则让我们(再次)报告它)?
2010 年 1 月 6 日更新:
我又增加了一些知识。当我最近尝试导出已签名的 apk 时,我遇到了另一条关于我以前从未见过的 aapt 的错误消息(来自 Eclipse 错误视图的完整详细信息)。在这里也要注意,我可以重新启动 Eclipse 并可以再次导出 apk 而不会出现问题,至少在一段时间内。
我开始认为这与我的系统内存不足有关。消息“onvoldoende geheugen beschikbaar”的意思是“可用内存不足”。
当我转储 HPROF 文件时,我还在 DDMS 中看到内存不足错误。
这是错误日志(缩短):
!ENTRY com.android.ide.eclipse.adt 4 0 2011-01-05 23:11:16.097
!MESSAGE Export Wizard Error
!STACK 1
org.eclipse.core.runtime.CoreException: Failed to export application
at com.android.ide.eclipse.adt.internal.project.ExportHelper.exportReleaseApk(Unknown Source)
at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard.doExport(Unknown Source)
at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard.access$0(Unknown Source)
at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard$1.run(Unknown Source)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Caused by: com.android.ide.eclipse.adt.internal.build.AaptExecException: Error executing aapt. Please check aapt is present at /opt/android-sdk/android-sdk-linux_x86-1.6_r1/platform-tools/aapt
at com.android.ide.eclipse.adt.internal.build.BuildHelper.executeAapt(Unknown Source)
at com.android.ide.eclipse.adt.internal.build.BuildHelper.packageResources(Unknown Source)
... 5 more
Caused by: java.io.IOException: Cannot run program "/opt/android-sdk/android-sdk-linux_x86-1.6_r1/platform-tools/aapt": java.io.IOException: error=12, Onvoldoende geheugen beschikbaar
...
Caused by: java.io.IOException: java.io.IOException: error=12, Onvoldoende geheugen beschikbaar
...
!SUBENTRY 1 com.android.ide.eclipse.adt 4 0 2011-01-05 23:11:16.098
!MESSAGE Failed to export application
!STACK 0
com.android.ide.eclipse.adt.internal.build.AaptExecException: Error executing aapt. Please check aapt is present at /opt/android-sdk/android-sdk-linux_x86-1.6_r1/platform-tools/aapt
at com.android.ide.eclipse.adt.internal.build.BuildHelper.executeAapt(Unknown Source)
at com.android.ide.eclipse.adt.internal.build.BuildHelper.packageResources(Unknown Source)
at com.android.ide.eclipse.adt.internal.project.ExportHelper.exportReleaseApk(Unknown Source)
at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard.doExport(Unknown Source)
at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard.access$0(Unknown Source)
at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard$1.run(Unknown Source)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Caused by: java.io.IOException: Cannot run program "/opt/android-sdk/android-sdk-linux_x86-1.6_r1/platform-tools/aapt": java.io.IOException: error=12, Onvoldoende geheugen beschikbaar
...
Caused by: java.io.IOException: java.io.IOException: error=12, Onvoldoende geheugen beschikbaar