【问题标题】:"No resource identifier found for attribute 'showAsAction' in package 'android'"“在包 'android' 中找不到属性 'showAsAction' 的资源标识符”
【发布时间】:2011-07-12 18:05:06
【问题描述】:

我正在尝试更新我的 Android 应用程序,使其更适合运行 Honeycomb 的平板电脑。因此,我的目标是 SDK 版本 11(我的 minSdkVersion = 4)。这会将 Honeycomb 主题添加到我的应用程序中,使其看起来更好。但是,我无法访问我的菜单选项。因此,我正在尝试将我的菜单项添加为操作栏项,并在我的 /res/menu/ 文件夹中的文件中添加以下内容:

android:showAsAction="ifRoom|withText"

但是,我收到以下错误:

在包“android”中找不到属性“showAsAction”的资源标识符

我尝试将我的 minSdkVersion 编号更改为 11 以查看它是否可行,但没有运气。有任何想法吗?谢谢!

【问题讨论】:

  • 我立即认为这是因为在 API 级别 11 中添加了 showAsAction,但您似乎已经考虑到了这一点。
  • 我是这么想的,所以才加了。但是,由于我在 Eclipse 中进行开发,因此我需要将整个项目目标更改为 #11,正如 Jason 在下面建议的那样。
  • 当我将项目目标更改为版本 8 时出现此错误。事实证明,当目标更高时,XML 文件中提到了 showAsAction,所以我只是从 XML 中删除了该行给出了错误并解决了问题。

标签: android android-layout android-actionbar android-menu


【解决方案1】:

如果您使用 Eclipse 构建,请确保您的项目的构建目标也设置为 Honeycomb。

【讨论】:

  • 就是这样。谢谢。非常感激。您是否知道为什么我的操作栏中没有显示任何内容,即使有此代码?
  • 应该会显示。如果没有,请使用您的代码创建另一个问题。
  • 您还需要在更改构建目标后进行清理。
  • Honeycomb = API 级别 11 = Android 3.0.x
【解决方案2】:

从每个 xml 文件中的 res/menu 文件夹中删除 android:showAsAction="never"

【讨论】:

  • 为什么有必要这样做? android:showAsAction="never" 有时实际上可以派上用场。
  • 虽然这不是理想的操作,但它是最好的临时解决方案。我导入了 android-support-v7-appcompat.jar,但是直到我从我的 XML 中删除 android:showAsAction="never" 行、删除 gen 文件夹、清理项目并重建之前,它没有正确加载。在我没有错误地构建之后,我可以将 android:showAsAction="never" 添加回我的 XML 中而不会出现错误。
【解决方案3】:

上述所有修复可能无法在 android studio 中运行。如果您使用的是 ANDROID STUDIO......请使用此修复

添加

xmlns:compat="http://schemas.android.com/tools"

在菜单标签中而不是

xmlns:compat="http://schemas.android.com/apk/res-auto"

菜单标签中。

【讨论】:

    【解决方案4】:

    将“android-support-v7-appcompat.jar”添加到 Android 私有库

    【讨论】:

      【解决方案5】:

      compat库编译添加到build.gradle文件中:

      compile 'com.android.support:appcompat-v7:19.+'
      

      【讨论】:

        【解决方案6】:

        问题与 AppCompat 库有关。有了它,你就有了

        xmlns:appname="http://schemas.android.com/apk/res-auto"
        

        并且可能:

        appname:showAsAction="never"
        

        在 menu.xml 文件中。

        没有lib,你只能拥有:

        android:showAsAction="never"
        

        我的应用在 Android 4.3 和 2.3.3 上都可以使用菜单。

        【讨论】:

          【解决方案7】:

          在 app build.gradle 上检查您的 compileSdkVersion。将其设置为 21:

          compileSdkVersion 21
          

          【讨论】:

            【解决方案8】:

            转到 gradle,然后到 app.buildgradle,然后将 compileSDKVersion 设置为 21,然后如果需要,android studio 将下载一些文件

            【讨论】:

              【解决方案9】:

              来自因用西班牙语编写而被删除的答案:

              上述所有修复可能无法在 android studio 中运行。如果您使用的是 ANDROID STUDIO,请使用以下修复。

              使用

              xmlns: compat = "http://schemas.android.com/tools"
              

              在菜单标签上而不是

              xmlns: compat = "http://schemas.android.com/apk/res-auto"
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多