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

Posted

技术标签:

【中文标题】“在包 \'android\' 中找不到属性 \'showAsAction\' 的资源标识符”【英文标题】:"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 中删除了该行给出了错误并解决了问题。 【参考方案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"

【讨论】:

以上是关于“在包 'android' 中找不到属性 'showAsAction' 的资源标识符”的主要内容,如果未能解决你的问题,请参考以下文章