找不到资源-Theme.AppCompat.Light.DarkActionBar


145

我使用了ActionBar Style Generator,现在尝试在我的应用程序中使用,但是得到:

错误:检索项目的父项时出错:找不到与给定名称'@ style / Theme.AppCompat.Light.DarkActionBar'匹配的资源。

我正在libs文件夹中使用android-support-v7-appcompat.jar lib

我的目标是使我的应用程序兼容2.3或更高版本


您是否将罐子添加到libs文件夹?
Raghunandan 2014年

是Android的支持-V7-appcompat.jar
太阳

Answers:


96

AppCompat是一个图书馆项目。您需要在android项目中引用库项目。

检查主题添加资源库


1
已经放在Android的支持-V7-appcompat.jar到libs文件夹
太阳

4
@AbrahimNeil这不是正确的方法。它是一个图书馆项目,因此必须像Google Play服务一样被引用
Raghunandan 2014年

当我导入android-support-v7-appcompat.jar时无法解析目标android-16,这是必需的吗?
太阳


1
implementation 'com.android.support:appcompat-v7:28.0.0'在依赖项下添加 ,解决了我的问题。
希拉尔

35

如果您使用的是Eclipsereference library请按照以下步骤将:添加到您的项目中:

  1. Project Explorer视图中右键单击您的项目。
  2. 点击Properties
  3. AndroidProperties窗口中单击。
  4. Library组中,单击Add...
    • 参见下图。
  5. 选择库。点击 OK
  6. OK在“属性”窗口中再次单击该按钮。

项目“属性”窗口中“ Android”部分的“库”组中的“添加”按钮。


4
您怎么知道op使用eclipse而不是android studio?发布的快照用于日食。
Raghunandan 2014年

@Raghunandan对不起,忘记提及它
MD

1
在Eclipse中完美运行。谢谢!
Scott Biggs,2015年

33

如果您使用的是Android Studio,则只需添加依赖项

dependencies {
     implementation 'com.android.support:appcompat-v7:25.0.1'
}

app/build.gradle。那会起作用


2
嗯...这不起作用 ...它仍然无法解析我的styles.xml文件中的android:Theme.AppCompat。*。
迈克尔(Michael)

我只是将实现'com.android.support:appcompat-v7:28.0.0'替换为实现'com.android.support:appcompat-v7:25.0.1',现在它可以工作了……但是为什么呢?
CGR

1
@CGR我相信Android更改了28+的主题,Light.DarkActionBar不再可用。
DoomGoober

13

对于在那里使用VS2015的任何人,我也都收到了此错误,事实证明我没有将库添加到项目中。

Install-Package Xamarin.Android.Support.v7.AppCompat

1
在VS2019中启动一个新项目并构建它之后,我得到了这个。只需执行“重建解决方案”而无需安装任何其他程序,即可解决错误。
格伦·利特

8

如果您使用的是Eclipse,那么如果您要使用资源,则仅将android-support-v7-appcompat.jar复制到libs文件夹将无法正常工作。

请遵循此处的“ 使用资源添加库 ”中的步骤。


7

一个简单的解决方案-将文件(/res/values/styles.xml)的内容替换为文本:

<resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
    <!-- Customize your theme here. -->
</style>


1
“检索项目的父项时出错:找不到与给定名称'AppBaseTheme'相匹配的资源。”
Yousha Aleayoub 2015年

1
这不是AppCompat
IgorGanapolsky '16


4

就我而言,我将一个android项目从一台计算机转移到另一台计算机,并且遇到了这个问题。对我有用的是我已经看到的一些答案的组合:

  • 删除工作区的libs文件夹中的appcompat库的副本
  • 安装SDK 21
  • 更改项目属性以使用该sdk构建 在此处输入图片说明
  • 设置并启动与SDK 21兼容的仿真器
  • 更新运行配置以提示设备在其上运行并选择运行

经过这些步骤,我的矿井就没事了。


3

使用Visual Studio 2015年(Windows7的)+ Xamarin了这个错误,并试图多的东西(安装包,下载android_m2repository_r10.zip ...)结束卸下后再充Xamarin文件夹

C:\Users\<my user>\AppData\Local

之后,在VS中重建应用程序,错误消失了。


这对我有用:)注意:使用Visual Studio Enterprise。2017 15.8预览版3.0
大卫·琼斯

我也使用VS 2017为我工作。–
理查德·莱尔

3

确保您的SDK中有一个v7目录,我认为拥有“ Android支持库”(在Extras中)就足够了。原来,我错过了“支持库的本地Maven存储库(extras; android; m2repository)”,Studio发现实际上并修复了gradle依赖项。使用gradle构建然后工作了。$ cat app / build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "pat.example.com.gdbdemo"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
     compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.2.1'
}

3
dependencies {
    implementation 'com.android.support:appcompat-v7:28.0.0'
}

编译已被实现取代,不知道为什么。


这是我的解决方案。
shizhen

2

如果要使用Android.mk进行构建,请使用USE_AAPT2,该链接从AAR链接到已构建的资源中。

在Android.mk文件中添加以下行:

LOCAL_USE_AAPT2:=真


1
  1. 在管理器中更新您的SDK,并确保包括Android support library在extra的
  2. 转到文件资源管理器中的SDK(在Mac上为Finder),查找Extra的文件夹(..\sdk\extras\android\support\v7\appcompat\res\values在Windows上)。某处有themes.xmlthemes_base.xml。复制这两个文件。
  3. 在您的项目中,将文件粘贴到“值”目录中

将themes_base.xml复制到res / values中可以解决原始问题,但会导致其他未解决的引用。
FractalBob



0

我有同样的问题。此处列出的解决方案均无法解决我的问题。事实证明,我是将项目的父文件夹导入Android Studio 1.5,而不是项目文件夹本身。这让Gradel头晕目眩。解决方法是导入项目文件夹。


-1

在xamarin中,如果您在添加任何新的sdk时遇到此问题。一个简单的解决方案是打开样式文件并添加此行。

<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"></style>

这是比添加appcompat更好的解决方案。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.