Android Studio错误:找不到资源

时间:2015-08-29 19:44:58

标签: java android attr

我在控制台中收到以下消息:

  

错误:(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'
}

但这仍然没有奏效。这可能是什么问题?

1 个答案:

答案 0 :(得分:3)

如果您使用colorPrimarycolorPrimaryDarkcolorAccent属性而没有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" />