我有一个可以正常编译和运行的 android 应用程序。我最近想添加一个 id 资源,我可以使用它动态地将 id 分配给我动态膨胀的布局。为此,我在/res/values/中创建了一个名为 ids.xml 的 xml 文件(文件名并不重要,因为我尝试了不同的名称)
文件内容很简单,大概就是
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item type="id" name="newLayoutId"/>
<item type="id" name="otherLayoutId"/>
</resources>
一旦将此文件添加到我的项目中,它将不再编译并出现以下错误
android-apt-compiler: Command "/Users/X/Source/Android Eclipse/sdk/platform-tools/aapt package -m -J /Users/X/Library/Caches/IntelliJIdea12/compile-server/_temp_/android_apt_output5946629892214876299tmp -M /Users/X/Code/projectName/AndroidManifest.xml -S /Users/X/Code/projectName/res -I /Users/X/Source/Android Eclipse/sdk/platforms/android-17/android.jar" execution failed with exit code 139
删除文件会使应用程序再次正常编译。我可以通过将资源类型从 id 更改为字符串或其他有效资源来轻松解决此问题。但我真的很想知道为什么会发生这个错误。 如有任何帮助,我们将不胜感激。
最佳答案
这里也一样,但我的退出代码是 138。
android-apt-compiler: Command "/Users/robertwang/Dev/adt-bundle-mac/sdk/build-tools/19.0.0/aapt package -m --auto-add-overlay --extra-packages com.evernote.androidsdk:com.actionbarsherlock:com.origamilabs.library -J /Users/robertwang/Library/Caches/IdeaIC12/compile-server/temp/android_apt_output9115494255397050428tmp -M /Users/robertwang/Dropbox/Work/Projects/HomeNeatly-AndroidKickstartr/HomeNeatly/AndroidManifest.xml -S /Users/robertwang/Dropbox/Work/Projects/HomeNeatly-AndroidKickstartr/HomeNeatly/res -S /Users/robertwang/Dropbox/Work/Projects/HomeNeatly-AndroidKickstartr/HomeNeatly/ext-libs/evernote_library/res -S /Users/robertwang/Dropbox/Work/Projects/HomeNeatly-AndroidKickstartr/actionbarsherlock/res -S /Users/robertwang/Dropbox/Code/github/StaggeredGridView/res -I /Users/robertwang/Dev/adt-bundle-mac/sdk/platforms/android-17/android.jar" execution failed with exit code 138
所以我在我的项目中寻找我创建的最后一个 xml 文件,删除 menu.xml 然后它全部编译正常。
但是我尝试用不同的名称添加相同的 xml,它也编译得很好!真的不知道里面发生了什么!
关于资源类型为 id 的 Android 编译器问题(退出代码 139),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17884002/