我正在关注教程https://developer.android.com/training/basics/actionbar/adding-buttons.html
它说的是:
如果您的应用使用支持库来兼容版本 与Android 2.1一样低,showAsAction属性不可用 来自android:名称空间。相反,此属性由。提供 支持库,您必须定义自己的XML命名空间并使用 该命名空间作为属性前缀。 (自定义XML命名空间应该 基于您的应用名称,但它可以是您想要的任何名称而且仅是 可在您声明它的文件范围内访问。)
所以我定义了以下main_activity_actions.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" >
<item
android:id="@+id/action_search"
android:icon="@drawable/ic_launcher"
android:title="temp"
app:showAsAction="always"/>
<item
android:id="@+id/action_settings"
android:icon="@drawable/ic_launcher"
android:title="temp"
app:showAsAction="always"/>
</menu>
我得到以下错误:
No resource identifier found for attribute 'showAsAction'
我在我的项目中使用HoloEveryWhere
库。项目构建目标是19. Manifest具有:
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="19" />
有关如何使自定义命名空间工作的任何建议吗?
将引用添加到android-support-v7-appcompat
库中会产生大量已定义的错误:
error: Attribute "actionBarDivider" has already been defined abc_attrs.xml /Myapp/HoloEverywhere-master/library/res/values line 71 Android AAPT Problem
感谢。
答案 0 :(得分:0)
I tried copying android-support-v7-appcompat.jar under libs folder, but it didn't help
您需要在Android项目中引用AppCompat,而不是将其作为jar添加到libs文件夹中。
http://developer.android.com/guide/topics/ui/actionbar.html
就像您引用Google Play服务的方式一样,您需要以相同的方式引用appcompat。
http://developer.android.com/tools/support-library/setup.html
答案 1 :(得分:0)
首先不需要使用自定义命名空间。简单地使用android
命名空间android:showAsAction="always"
工作正常,使用模拟器API级别8和2.3x设备以及4.4设备进行测试。