我在控制台中收到以下消息:
错误:(15,22)找不到与给定名称匹配的资源:attr 'colorAccent'。错误:(13,22)
找不到与给定匹配的资源 name:attr'colorPrimary'。错误:(14,22)
没有找到资源 匹配给定的名称:attr'colorPrimaryDark'。
这是我的style.xml
文件:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppBaseTheme" parent="android:Theme.Holo">
<item name="colorPrimary">@color/color_primary</item>
<item name="colorPrimaryDark">@color/color_secondary</item>
<item name="colorAccent">@color/color_accent</item>
</style>
</resources>
my color.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="cyan">#6441a5</color>
<color name="color_primary">#6441a5</color>
<color name="color_secondary">#6441a5</color>
<color name="color_accent">#6441a5</color>
</resources>
在搜索并查看许多其他解决方案后,大多数答案都表示要将目标SDK更改为21: 这是我的清单文件:
<uses-sdk
android:minSdkVersion="15"
android:targetSdkVersion="21" />
我的构建等级:
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
compileOptions.encoding = 'utf-8'
defaultConfig {
applicationId "com.test.test"
minSdkVersion 15
targetSdkVersion 21
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile 'com.android.support:support-v4:21.0.0'
}
但这仍然没有奏效。这可能是什么问题?
答案 0 :(得分:3)
如果您使用colorPrimary
,colorPrimaryDark
和colorAccent
属性而没有android:
命名空间,则表示您正在使用支持库强>
如果您在依赖项中添加了v7支持库,我会查看,并确保您的应用主题包含Theme.AppCompat
个样式之一的父级强>
这也意味着您需要将compile 'com.android.support:appcompat-v7:21.+'
添加到Gradle依赖项中, Activity
文件必须extend AppCompatActivity
。
你的相关文件应该是这样的(我在你的答案中使用了参考/属性名称):
<强>的AndroidManifest.xml 强>:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
... >
...
<application
...
android:theme="@style/AppBaseTheme" >
...
<强> styles.xml 强>:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppBaseTheme" parent="Theme.AppCompat">
<item name="colorPrimary">@color/color_primary</item>
<item name="colorPrimaryDark">@color/color_secondary</item>
<item name="colorAccent">@color/color_accent</item>
</style>
...
<强> colors.xml 强>:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="color_primary">#6441a5</color>
<color name="color_secondary">#6441a5</color>
<color name="color_accent">#6441a5</color>
...
<强> YourActivity.java 强>:
....
public class DetailActivity extends AppCompatActivity {
....
}
<强>的build.gradle 强>:
...
dependencies {
...
compile 'com.android.support:appcompat-v7:21.+'
...
}
确保您已包含我上面列出的行。
当然,我放置...
表示您可能已将其他代码放在那里,因此不要将...
放入代码中。
另请注意,如果您使用的是Gradle,则清单中的版本/ API声明无关紧要。因此,您应该能够在不发生任何错误的情况下删除它:
<uses-sdk
android:minSdkVersion="15"
android:targetSdkVersion="21" />