“在包 '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' 的资源标识符”的主要内容,如果未能解决你的问题,请参考以下文章