我在styles.xml文件中写了一个主题,如下面的
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Root styles that vary by API level -->
<style name="FrameworkRoot.Theme" parent="Theme.Sherlock.Light.DarkActionBar">
<!-- API 11+ (compatibility) -->
<item name="buttonBarStyle">@style/Compat.ButtonBar</item>
<item name="buttonBarButtonStyle">@style/Compat.ButtonBarButton</item>
<item name="indeterminateProgressStyle">@style/Compat.IndeterminateProgress</item>
<!-- API 14+ (compatibility) -->
<item name="listPreferredItemPaddingLeft">@dimen/compat_list_preferred_item_padding_left</item>
<item name="listPreferredItemPaddingRight">@dimen/compat_list_preferred_item_padding_right</item>
<item name="listPreferredItemHeightSmall">@dimen/compat_list_preferred_item_height_small</item>
</style>
但是得到错误:错误:找不到与给定名称匹配的资源:attr'buttonBarStyle'。
我从谷歌io2012获取代码。我和它的'所有基地
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16" />
我可以编译谷歌io2012的源代码,但不是我的。这么奇怪。 有谁知道为什么?或者有同样的问题?
答案 0 :(得分:16)
我遇到了类似的问题......我的Eclipse工作区中有两个项目,都基于Android 4.2 jar。一个人的minSdkVersion =“8”,其中targetSdkVersion =“17”,其风格同时引用了buttonBarStyle
和buttonBarButtonStyle
这两个名字。另一个项目使用相同的清单设置,由于错误而无法构建:
No resource found that matches the given name: attr 'buttonBarStyle'.
No resource found that matches the given name: attr 'buttonBarButtonStyle'.
当我看到关于需要@dead's
文件的attrs.xml
评论时,我检查并确定无法编译的项目缺少此文件。我认为工作项目是使用Eclipse Android Application Project向导生成的,而另一个是手动创建的。
res/values/attrs.xml
的内容:
<resources>
<!--
Declare custom theme attributes that allow changing which styles are
used for button bars depending on the API level.
?android:attr/buttonBarStyle is new as of API 11 so this is
necessary to support previous API levels.
-->
<declare-styleable name="ButtonBarContainerTheme">
<attr name="buttonBarStyle" format="reference" />
<attr name="buttonBarButtonStyle" format="reference" />
</declare-styleable>
</resources>
res/values/colors.xml:
<resources>
<color name="black_overlay">#66000000</color>
</resources>
三个样式文件:
1)res / values / styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!--
Base application theme, dependent on API level. This theme is replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Light">
<!--
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level
can go here. -->
</style>
<style name="ButtonBarButton" />
<style name="ButtonBar">
<item name="android:paddingLeft">2dp</item>
<item name="android:paddingTop">5dp</item>
<item name="android:paddingRight">2dp</item>
<item name="android:paddingBottom">0dp</item>
<item name="android:background">@android:drawable/bottom_bar</item>
</style>
<style name="FullscreenTheme" parent="android:Theme.NoTitleBar">
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowBackground">@null</item>
<item name="buttonBarStyle">@style/ButtonBar</item>
<item name="buttonBarButtonStyle">@style/ButtonBarButton</item>
</style>
<style name="ContentText">
<item name="android:textColor">#0000ff</item>
<item name="android:textSize">50sp</item>
<item name="android:textStyle">bold</item>
</style>
</resources>
2)res / values-v11 / styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!--
Base application theme for API 11+. This theme completely replaces
AppBaseTheme from res/values/styles.xml on API 11+ devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
<!-- API 11 theme customizations can go here. -->
</style>
<style name="FullscreenActionBarStyle" parent="android:Widget.Holo.ActionBar">
<item name="android:background">@color/black_overlay</item>
</style>
<style name="FullscreenTheme" parent="android:Theme.Holo">
<item name="android:actionBarStyle">@style/FullscreenActionBarStyle</item>
<item name="android:windowActionBarOverlay">true</item>
<item name="android:windowBackground">@null</item>
<item name="buttonBarStyle">?android:attr/buttonBarStyle</item>
<item name="buttonBarButtonStyle">?android:attr/buttonBarButtonStyle</item>
</style>
</resources>
3)res / values-v14 / styles.xml
<resources>
<!--
Base application theme for API 14+. This theme completely replaces
AppBaseTheme from BOTH res/values/styles.xml and
res/values-v11/styles.xml on API 14+ devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<!-- API 14 theme customizations can go here. -->
</style>
</resources>
答案 1 :(得分:11)
buttonBarStyle
适用于您在SDK中说明的版本11及更高版本,但您使用的是android:minSdkVersion="8"
。是不是应该适用于android:minSdkVersion="11"
?
答案 2 :(得分:1)
请参阅以下链接。添加代码中使用的值并删除其余值。 希望它可以帮到你。
答案 3 :(得分:0)
确保已包含AppCompat。这是一个图书馆项目。您需要在Android项目中引用库项目。
https://developer.android.com/tools/support-library/setup.html
检查主题使用资源添加库。
答案 4 :(得分:0)
和你的问题一样:
我的build.gradle
文件:
android {
compileSdkVersion 25
buildToolsVersion "27.0.1"
defaultConfig {
applicationId "com.whatever"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}}
我在我的Values文件夹中添加了一个attrs.XML
文件,其中包含以下代码:
<declare-styleable name="ButtonBarContainerTheme">
<attr name="metaButtonBarStyle" format="reference" />
<attr name="metaButtonBarButtonStyle" format="reference" />
</declare-styleable>
现在我看到没有抱怨!
答案 5 :(得分:0)
我收到同样的错误....删除了
的文件夹C:\ Users \ .android \ build-cache \ Hash文件夹数量。 4eaccf0d162ec009b115c7e0ff4f542f8d2a663b \
它就像一个魅力......