我正在尝试在我的Android应用中添加操作栏操作按钮到我的操作栏。每次我向res / menu /(某些xml文件)添加一个动作按钮时,我一直得到错误aapt:返回代码138.所以即使eclipse说错误不是因为我的代码,也一定是因为我的代码。每当我在“菜单”目录中创建的xml文件中添加操作按钮时,就会弹出错误。根据{{3}},它与不在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>
menu_fragment_apply.xml(在res / menu /中)
<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>
答案 0 :(得分:9)
问题是
应用程式:showAsAction = “ifRoom”
那应该是
机器人:showAsAction = “ifRoom”
代替。当你使用app compat库时使用app:showAsAction,我假设你没有在这里使用。
答案 1 :(得分:2)
我刚刚解决了这个问题。
这是因为当我还有一个引用已删除图像的layout.xml文件时,我从drawable文件夹中删除了一个图像。
我通过在项目范围内搜索已删除图标的名称解决了该问题,并删除了对丢失图标的所有引用。然后我重建了项目,错误消失了。
答案 2 :(得分:1)
获取此错误意味着您的Android安装可能会以某种方式损坏。通常,在特定情况下的项目中会出现此错误,例如生成新图标或添加新的xml文件。如果您在&#34;问题&#34;中看到此错误干净后的窗口,首先尝试关闭并重新打开Eclipse,然后尝试执行 Project => Clean
。
如果相同的消息仍然存在,您可能需要重新安装包含ADT Bundle
的{{1}}。您应该从计算机中删除整个现有Eclipse
(包括ADT bundle
和Eclipse
)并重新下载该捆绑包,从头开始提取内容并重新设置。完全重新安装后,用户很少遇到此错误。
答案 3 :(得分:1)
所以我从来没有真正弄清楚问题是什么,但我想出的一个临时修复是每次我添加一个新的菜单文件,我将不得不删除所有菜单文件,包括新的菜单文件,然后清理和刷新。之后,我将不得不再次添加所有菜单文件,然后清理并刷新,错误消失了。真烦人,但至少这对我有用。
答案 4 :(得分:0)
我遇到了这个错误,因为我在库项目中定义了一个菜单资源,而不是在主Android应用程序项目中。
答案 5 :(得分:0)
可能发生这种情况的另一个原因是Project Build Target(在Project Settings - &gt; Android中)设置得太低,因此XML与处理它的工具不兼容。
我刚刚遇到这个问题,显示的是minSdkVersion = 9,targetSdkVersion = 19,所以Eclipse将构建目标设置为9.将其重置为14使问题消失 - 到那时我已经让我的下属看起来很难一些XML没有版本控制或一些错误的ID;)
答案 6 :(得分:0)
我这几天在ADT for mac中遇到过这个问题。 无法生成R文件导致返回代码138,最后我通过查找String.xml文件中缺少字符串来解析它,并在其他代码中调用它。 也许你可以试试......