为新的Android ActionBar支持找不到Theme.AppCompat.Light

我正在尝试实施几天前由Google发布的新的ActionBar支持库。 在过去,我已经成功实现了ActionBarSherlock,没有任何问题,使用Google开发者支持库设置页面上列出的同样的方法 – 使用关于如何包含资源(类似于ActionBarSherlock做的)的指南。 我把库项目作为一个库加载到我自己的项目中。

我可以告诉图书馆加载正常。 而不是在我的MainActivity.java上扩展Activity时,我将其更改为扩展ActionBarActivity(按照Google的说明),不会发生任何错误 – 并且正确导入。

我什至尝试绕过style.xml文件,并添加@style/Theme.AppCompat.Light直接在AndroidManifest.xml中与android:theme="@style/ThemeAppCompat.Light" <application><activity>尝试导致相同的错误。

现在的问题是我不能改变主题,更不用说甚至没有抛出错误的构建。 下面是我收到的错误,后面是我更改为使用新主题的style.xml文件。

我有与Android应用程序工作经验丰富的经验,并运行与支持库和SDK编译与API 18(Android 4.3)的最新版本的Eclipse。

生成过程中收到错误

错误:检索项目的父项时出错:找不到与给定名称'@ style / Theme.AppCompat.Light'匹配的资源。 styles.xml / ActBarTest / res / values第3行Android AAPT问题

style.xml

 <?xml version="1.0" encoding="utf-8"?> <resources> <style name="Theme.ProsoftStudio.ACTest" parent="@style/Theme.AppCompat.Light"> </style> </resources> 

有什么建议么? 这不是ActionBarSherlock的问题。 我想要使​​用这个新的支持库。 它似乎是.jar加载,但不是资源。

你需要做下一步:

  1. File->Import (android-sdk\extras\android\support\v7) 。 选择“AppCompat”
  2. Project-> properties->Android. 在部分库“Add”中选择“AppCompat”
  3. 就这些!

注意:如果您在菜单项中使用“android:showAsAction”,则需要更改前缀android,如示例http://developer.android.com/guide/topics/ui/actionbar.html

如果像我一样,在http://developer.android.com/training/basics/actionbar/setting-up.html上关注Android教程,并且不断收到此错误,请尝试更改所有;styles.xmlAppBaseTheme样式文件。 详细:

  1. 在文件res/values/styles.xml更改该行:

     <style name="AppBaseTheme" parent="android:Theme.Light"> 

    至:

     <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light"> 
  2. 在文件res/values-v11/styles.xml更改该行:

     <style name="AppBaseTheme" parent="android:Theme.Holo.Light"> 

    至:

     <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light"> 
  3. 在文件res/values-v14/styles.xml更改行:

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

    至:

     <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar"> 

现在应用程序应该运行良好。

我将分享我的经验与这个问题。 因为这个,我疯了,但我发现这个问题是Eclipse本身的问题,而不是我的代码: 在eclipse中,无法在另一个android项目中引用android库项目

因此,如果您的C:驱动器中有Android支持库,并且计算机上的D:驱动器中有项目,则Eclipse将无法正常运行,并且不会知道Android支持库的位置(绿色勾号变成红色叉号)。 为了解决这个问题,你需要将两个项目移到同一个硬盘上。

我使用Android支持库( APL )项目和主项目( MP )在Eclipse中完成了以下工作:

  1. 确保APLMP具有相同的minSdkVersiontargetSdkVersion

  2. 添加APL作为MP的构建依赖项:

    1. 进入MP的 “Properties> Java Build Path”,然后

    2. 选择“项目”选项卡并添加APL

  3. MP的属性中,在“Android”下,在库下添加了对APL的引用。

1和2得到的Java类的引用工作正常…但是当我试图从APL引用@style/Theme.AppCompat.Light时,我仍然在MPmanifest.xml看到错误。 当我执行步骤3时,这只会消失。

如果您修改了“项目结构模块”,则这是Android Studio中可能发生的问题。 在这种情况下,您可能需要再次添加依赖关系。 在文本编辑器中编辑“build.gradle”文件以包含所需的依赖关系:

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

这应该用lib组件更新你的“{your_project_name} .iml”文件:

 <orderEntry type="library" exported="" name="appcompat-v7-19.0.1" level="project" /> 

它有点迟了,但这里是我在AndroidStudio中完成的!

右键点击应用程序转到属性 右键点击应用程序转到属性

转到依赖关系,然后点击“+”号并选择库依赖关系 转到依赖关系,然后点击“+”号并选择库依赖关系 选择appcompat-v7 选择appcompat-v7

IntelliJ IDEA解决方案。

1.运行Android SDK Manager并安装最新的SDKAndroid支持Libarary 。 SDK和Android支持Libarary的版本应该是一样的 ! 23在我的情况。 另一个变种会给你的错误。
在这里输入图像描述
2.将IDEA项目的SDK版本更改为上一步安装的最后一个。 (ps。你可能不使用Maven)。
在这里输入图像描述

3.从现有的课程中添加新的模块到您的IDEA项目。
在这里输入图像描述

4.添加AppCompat项目。 也应该在最后一个SDK下! (ps。在这个步骤的任何地方说“是”)
在这里输入图像描述

5.打开主工程模块的设置并添加到下一个3个依赖关系:

5.1。 模块依赖。 选择android-support-v7-appcompat
在这里输入图像描述

5.2。 2件。 库依赖关系。 添加android-sdk \ extras \ android \ support \ v7 \ appcompat \ libs \ android-support-v4.jarandroid-support-v4 \ android-support-v7-appcompat.jar
在这里输入图像描述

总共将是:
在这里输入图像描述

6. 非常重要!
添加前缀@style的主题(不是另一个!)
在这里输入图像描述

Android Studio解决方案。

1.运行Android SDK Manager并安装最新的SDKAndroid支持Libarary 。 SDK和Android支持Libarary的版本应该是一样的 ! 23在我的情况。 另一个变种会给你的错误。
在这里输入图像描述

2.添加到build.gradle旁边

 dependencies { compile 'com.android.support:appcompat-v7:23.0.1' } 

PS如果你是Android开发新手,我强烈推荐你现在转移到Android Studio&Gradle – 你会得到最简单的方式来管理你的Android应用程序。

对于Android Studio 1.2.2

parent属性值中删除“android”:

 <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"></style> 

您需要引用$ ANDROID_SDK / extras / android / support / v7 / appcompat

对于IntelliJ IDEA或Android Studio:

将此添加到app.gradle构建文件

 dependencies { compile "com.android.support:appcompat-v7:21.0.+" } 

-v:xx.0+替换为你的构建目标,如果你有19个平台,那么它必须是:

 dependencies { compile "com.android.support:appcompat-v7:19.0.+" } 

按照@rcdmk的步骤操作。 删除您项目中的android支持v4.jar。 它与在appcompat中找到的新的更新版本冲突。

我的问题通过以下步骤解决

  1. File-> Import(android-sdk \ extras \ android \ support \ v7 \ appcompat)
  2. 右键单击Project-> properties-> Android。 在“添加”部分库中,选择步骤1中包含的库appcompat
  3. 从项目的libs目录中删除所有文件
  4. 将以下文件添加到项目的libs目录<SDK-PATH>\extras\android\support\v13android-support-v13.jar

    如果需要,重新启动Eclipse。 而已。 你的问题应该消失。

我有同样的问题,浪费我的4-5小时的解决方案。 我的问题解决了;

  1. 从SDK管理器删除包“Android支持库”和“Android支持库”。
  2. 重新安装“Android支持库”和“Android支持库”
  3. 删除“android-support-v7-appcompat”或“appcompat_v7你还有什么你的项目。
  4. 从“adt-bundle-windows-x86_64-20140702 \ sdk \ extras \ android \ support \ v7 \ appcompat”导入android-support-v7-appcompat
  5. 选择你的项目,然后从文件中选择属性,找到Java Build Path,然后从“Project”选项卡中删除其他内容,然后添加。 你必须看到“android-support-v7-appcompat”,选择并将其添加到“项目”选项卡。
  6. 检查你的项目文件下面的project.properties文件,你会看到这样的; target = android-21 android.library.reference.1 = .. / android-support-v7-appcompat然后检查AndroidManifest.xml文件,如果目标是21或者你选择了什么。 同时检查与以前选择的库相同的库参考。

希望你会找到你的解决方案。

作品:

 <style name="MyApp" parent="Theme.AppCompat.Light"> </style> <style name="MyApp" parent="@style/Theme.AppCompat.Light"> </style> <style name="Theme.AppCompat.Light.MyApp"> </style> 

由于在Android Studio 1.0.1中导入dialouge不同,我不能让Svyatoslav Lobachs版本工作。

相反,我在SDK管理器中下载了“Android Support Repository”。 然后添加

 dependencies { ... compile "com.android.support:appcompat-v7:18.0.+" } 

build.gradle 。 为我工作。

http://developer.android.com/tools/support-library/setup.html有一个错误。; 在Property-> Java构建路径 – >'Project'和'Order and Export'中,不应该有任何jar。 删除它们,并检查“Android私人图书馆”和“Android依赖”解决了我的问题。

右键单击我的项目并选择“ 关闭不相关的项目”后,我遇到了与OP相同的问题。

在我的情况下,我通过重新打开appcompat_v7项目并清理/重建两个项目来解决问题。

在像HelloWorld这样的项目中,截至2015年1月14日,Eclipse(Luna)/ AndroidSDK(不是Android Stduio)与最新的工具和库一起使用时发生在我身上。 当我安装这些工具并将HelloWorld作为第一个应用程序时,我接受了所有的默认设置。 – 这是我的情况

首先,检查是否安装了“Android支持库”库。 如果没有,请安装它。 它没有默认安装。 您可以在菜单中的“Android SDK manager”中完成这一切。

(Android SDK管理器 – >额外 – > Android支持库)

祝福(债务人)<> <

最快的解决方案:

右键点击项目 – > Android工具 – >添加支持库

在这里输入图像描述

我为此犯了一个非常愚蠢的错误。 当我每次得到同样的错误时,我无法弄清楚什么是错的。 那么一旦我关闭了工作空间中的所有项目,那就是一切问题开始的时候。 所以只要检查你的“appcompat_v7”是否关闭。 如果是通过双击打开项目,然后清理并重新构建您的项目。 在我的情况下,错误消失了。 快乐的编码!

我不确定当这个问题发布的时候v13支持库是否可用,但是如果有人还在挣扎,我已经看到添加android-support-v13.jar会解决所有问题。 这是我做到的:

  1. 右键点击项目 – >属性
  2. 从左侧的内容表中选择Java Build Path
  3. 转到Libraries选项卡
  4. 添加外部的jars按钮,并选择<your sdk path>\extras\android\support\v13\android-support-v13.jar

对于Android Studio或IntelliJ,您只需要在gradle.build中更新依赖关系。 我使用了以下内容:

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

我不知道你们中有多少人注意到了这一点。 支持库“appcompat_v7”和你的项目应该在同一个目录(我的意思是工作区目录)。 不要清理你的项目,直到它没有错误,否则你将与R.java有困难的时间

你最好用任何名字创建新的项目,然后使用程序创建新的appcompat_v7。

 Right Click Project-> properties->Android 

在部分库Add并选择库appcompat。

在Eclipse中右键单击你的项目 – >选择构建路径,然后选择配置构建路径。 从窗口中选择你想要的jar文件并刷新你的项目

被接受的解决方案曾经为我工作过一次,但不是现在。 我不得不在一个新的工作空间中重新创建一个同样类型的Hello World(!),编译它,然后复制所有的目录,包括.hg.hgignorehg diff显示:

 - android:targetSdkVersion="19" /> + android:targetSdkVersion="21" /> Binary file libs/android-support-v4.jar has changed 

看起来Eclipse想要编译API 21,并且不能对API 19做任何事情。

如果您已经添加了appCompat库,并且已经从SDK位置中正确引用了appCompat,请尝试“无效缓存/重新启动”
您可以从Android Studio的“文件”菜单找到它。

在我的情况下,因为我想使用不包含所需的库的SDK的问题发生。 当我增加分钟。 SDK级别的问题消失了。 当然直接包括图书馆本身,也应该删除错误。

忘记了一切。 只需使用Android Studio下载的appcompat库即可。 它有所有缺失的定义。 无论你是否在Eclipse中使用。

我有同样的问题,甚至导入/添加答案中提到的jar /库后,它不会解决错误。 出于挫折,我刚刚创建了一个新的工作空间,并创建了一个全新的android项目,并自动导入appcompat_v7,并没有在清理和构建错误。 不必手动导入一个jar /库。 只是供参考我正在使用eclipse Mars.1 Release(4.5.1),并且每次创建一个新的android项目时都面临完全相同的问题。