【问题标题】:Android Studio error: No resource foundAndroid Studio 错误:找不到资源
【发布时间】:2015-11-24 05:41:23
【问题描述】:

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

错误:(15, 22) 找不到与给定名称匹配的资源:attr '颜色口音'。错误:(13, 22)

找不到与给定匹配的资源 名称: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>

我的颜色.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'
}

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

【问题讨论】:

  • 如果您觉得我的回答有用,您能接受吗? ;)

标签: java android attr


【解决方案1】:

如果您使用的是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" />

【讨论】:

  • 我试过这个:@color/color_primary@color/color_secondary@color/color_accent 应用启动但未更改颜色
  • @J.Doe 您应该将 AppBaseTheme 的父级设置为“Theme.AppCompat”,就像 Fabod 提到的那样
  • 如果我这样写会出错:
  • @J.Doe 主题名称中不需要android:。
  • 不是吗?
猜你喜欢
  • 2019-05-03
  • 2015-07-12
  • 2022-07-02
  • 1970-01-01
  • 2015-11-12
  • 2022-01-11
  • 1970-01-01
  • 2017-06-06
  • 1970-01-01
相关资源
最近更新 更多