【问题标题】:Eclipse Android: Error executing aapt: Return code 138, nothing I do seems to fix itEclipse Android:执行 aapt 时出错:返回代码 138,我似乎没有修复它
【发布时间】:2014-03-08 22:22:17
【问题描述】:

我正在尝试将操作栏操作按钮添加到我的 android 应用中的操作栏。每次我向 res/menu/(some xml file) 添加操作按钮时,我都会不断收到错误 aapt:Return code 138。所以即使 eclipse 说错误不是因为我的代码,它一定是因为我的代码.每当我向“菜单”目录中创建的 xml 文件添加操作按钮时,都会弹出错误。根据this,它与不在 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>

【问题讨论】:

  • 您是否尝试过清理项目?在菜单项目 -> 清理
  • 这是我做的第一件事。

标签: android xml eclipse menu aapt


【解决方案1】:

问题是

app:showAsAction="ifRoom"

应该是这样的

android:showAsAction="ifRoom"

相反。当您使用 app 兼容库时使用 app:showAsAction,我假设您没有在这里使用。

【讨论】:

  • 非常感谢。我在menu 文件中有一个不同的错误,但它导致了相同的输出。 Eclipse 没有提示那里有错误,所以我永远不会找到它。
【解决方案2】:

我刚刚解决了这个问题。

当我仍然有一个引用已删除图像的 layout.xml 文件时,我从 drawable 文件夹中删除了一个图像。

我通过在项目范围内搜索已删除图标的名称并删除了对丢失图标的所有引用解决了这个问题。然后我重建了项目,错误消失了。

【讨论】:

  • 我遇到了同样的问题,但是我在 strings.xml 中重命名了一个丢失的字符串。为什么 Eclipse 不告诉您缺少的字符串在 xml 中的引用位置,而不是完全轰炸掉?看起来像一个错误。
【解决方案3】:

收到此错误意味着您的 Android 安装可能以某种方式损坏。通常,此错误会在特定情况下发生在项目上,例如生成新图标或添加新 xml 文件。如果您在清理后在“问题”窗口中看到此错误,请先尝试关闭并重新打开 Eclipse,然后尝试执行 Project =&gt; Clean

如果同样的消息仍然存在,您可能需要完全重新安装 ADT Bundle,其中包括 Eclipse。您应该从您的计算机中删除整个现有的ADT bundle(包括EclipseSDK folder)并重新下载捆绑包,提取内容并从头开始重新设置。用户在完全重新安装后很少遇到此错误。

参考:github.com wiki

【讨论】:

  • 感谢您的回答,明天我要睡觉了,我会试试这个。希望我可以投票,但没有足够的代表。
  • 我重新安装了 SDK 和 Eclipse,但这对我不起作用,仍然有 aapt 138 错误。
  • I'm_With_Stupid 是对的,这是一个 aapt 错误:它在您的 xml 中发现错误,但无法显示在哪里。
【解决方案4】:

所以我从来没有真正弄清楚问题出在哪里,但我发现的一个临时修复是每次添加新菜单文件时,我都必须删除所有菜单文件,包括新的菜单文件,然后清理并刷新。之后,我将不得不再次添加所有菜单文件,然后清理并刷新,错误就消失了。真的很烦人,但至少这对我有用。

【讨论】:

    【解决方案5】:

    我遇到此错误是因为我在库项目中而不是在主 android 应用程序项目中定义了菜单资源。

    【讨论】:

      【解决方案6】:

      这可能发生的另一个原因是项目构建目标(在项目设置 -> Android 中)设置的版本太低,因此 XML 与处理它的工具不兼容。

      我刚遇到这个问题,manifest是minSdkVersion=9,targetSdkVersion=19,所以Eclipse将构建目标设置为9,将其重置为14,问题就消失了——到那时我已经让我的下属努力寻找一些 XML 超出版本控制或一些错误的 ID ;)

      【讨论】:

        【解决方案7】:

        这几天我在 ADT for mac 中遇到了这个问题。 无法生成R文件导致返回代码138,最后我通过发现String.xml文件中缺少一个字符串来解决它,并在其他代码中调用它。 或许你可以试试……

        【讨论】:

        • 欢迎来到 SO。通常人们会在他们的答案中留下一个代码示例,以便 OP 可以更快地确定问题的解决方案。您愿意分享丢失的字符串和/或 +/- 它的位置吗?
        猜你喜欢
        • 2012-12-01
        • 2015-02-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-13
        • 2013-02-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多