我正在尝试在我的Android应用中的动作栏中添加动作栏操作按钮。每当我将操作按钮添加到RES/菜单/(某些XML文件)时,我都会收到错误AAPT:返回代码138.因此,即使Eclipse表示错误并不是因为我的代码,也必须是因为我的代码。就像每当我在"菜单"目录中创建的XML文件中添加一个操作按钮时,错误就会弹出。据此,它与不在res/values/strings.xml中声明我的字符串有关。但是,即使我确实在那儿声明了我的字符串,错误仍然会弹出!这简直令人发指。我将在下面包括我的菜单和字符串XML文件,以防它们有问题。如果您需要更多信息或还有其他问题,请随时提出。
strings.xml文件
<resources>
<string name="app_name">Beacon Portal</string>
<string name="action_settings">Settings</string>
<string name = "edit_item">Action Bar Icon Edit</string>
<string name="hello_world">Hello world!</string>
<string name="Fragment1">This is where the schedule goes when I get around to making that because it seems like some people want that</string>
<string name="FragmentTab1">This is ViewPager Fragment Tab 1</string>
<string name="FragmentTab2">This is ViewPager Fragment Tab 2</string>
<string name="drawer_open">Open navigation drawer</string>
<string name="drawer_close">Close navigation drawer</string>
<!-- Nav Drawer Menu Items -->
<string-array name="nav_drawer_items">
<item >Schedule</item>
<item >Homework Due</item>
<item >Logout</item>
</string-array>
<!-- Nav Drawer List Item Icons -->
<!-- Keep them in order as the titles are in -->
<array name="nav_drawer_icons">
<item>@drawable/ic_action_go_to_today</item>
<item>@drawable/ic_action_duehomework</item>
<item>@drawable/ic_action_logout</item>
</array>
<!-- Content Description -->
<string name="desc_list_item_icon">Item Icon</string>
<!-- general stuff -->
<string name="userid_label">OpenMinds</string>
<!-- titles -->
<string name="title_activity_actionview">ActionView</string>
<string name="title_activity_about">About</string>
<!-- ActionBar -->
<string name="edit">Edit Schedule</string>
<string name="apply">Apply Edits</string>
</resources>
菜单_fragment_apply.xml(在res/菜单/)
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/actionViewApply"
android:icon="@drawable/ic_action_agree"
app:showAsAction="ifRoom"
android:title="@string/apply"/>
</menu>
问题是
app:showasaction =" ifroom"
应该是
android:showasaction =" ifroom"
而是。使用应用程序:使用应用程序compat库时,我假设您在这里不使用。
我只是解决了这个问题。
这是由我删除可绘制文件夹的图像时引起的。
我通过对已删除图标的名称进行广泛的搜索来解决问题,并删除了对缺失图标的所有引用。然后,我重建了项目,错误消失了。
获得此错误意味着您的Android安装可能会以某种方式损坏。通常,此错误将在特定情况下发生,例如生成新图标或添加新的XML文件。如果您在清洁后看到"问题"窗口中的此错误,请尝试关闭和重新打开Eclipse,然后尝试进行 Project => Clean
。
如果相同的消息持续存在,则可能需要对包括Eclipse
的ADT Bundle
进行完整的重新安装。您应该从计算机(包括Eclipse
和SDK folder
)中删除整个现有的ADT bundle
,然后重新下载捆绑包,提取内容并从头开始重新设置。总重新安装后,用户很少会遇到此错误。
参考:github.com wiki
,所以我从来没有真正弄清楚问题是什么,但是我发现的临时修复程序是每次添加一个新菜单文件时,我都必须删除所有菜单文件,包括新的,然后清洁和刷新。之后,我必须再次添加所有菜单文件,然后清洁并刷新,并且错误消失了。真的很烦人,但至少这对我有用。
我有这个错误,因为我在库项目中定义了一个菜单资源,而不是在主要的Android应用程序项目中。
可能发生的另一个原因是,项目构建目标(在项目设置 -> android中)设置为版本太低,因此XML与处理它的工具不相容。
我刚刚遇到了这个问题,清单是minsdkversion = 9,targetsdkversion = 19,所以Eclipse将构建目标设置为9。将其重置为14使问题消失了 - 那时我已经使我的下属看起来很难。某些XML版本控制或一些错误的ID;)
我最近在ADT中遇到了这个问题。无法生成r文件导致返回代码138,最后我通过在string.xml文件中找到字符串而解决,并在其他代码中调用。也许您可以尝试...