无法找到Theme.AppCompat.Light为新的Android动作栏支持

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

我能看出图书馆的资料还不错。当,而不是在我的MainActivity.java上扩展活动,我把它改为扩展ActionBarActivity(根据谷歌的指令),没有发生错误-它正确地导入。

我甚至尝试绕过style.xml文件,直接将@style/Theme.AppCompat.Light添加到AndroidManifest.xml中,用于<application><activity>,使用android:theme="@style/ThemeAppCompat.Light",所有的尝试都会导致相同的错误。

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

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

生成时收到的错误

获取父项的错误:没有找到匹配给定名称的资源'@style/Theme.AppCompat.Light'。styles.xml /ActBarTest/res/values line 3 Android AAPT Problem

style.xml

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

有什么建议吗?这从来不是ActionBarSherlock的问题。我想使用这个新的支持库。看起来像是.jar在加载,而不是资源。

541075 次浏览

你需要参考$ANDROID_SDK/extras/android/support/v7/appcompat

接下来你需要做的是:

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

注意:如果你在菜单项中使用“android:showAsAction”,你需要像例子http://developer.android.com/guide/topics/ui/actionbar.html一样改变前缀android

我在Eclipse中使用Android支持库(APL)项目和主项目(国会议员)做了以下工作:

  1. 确保APLMP具有相同的minSdkVersiontargetSdkVersion

  2. 添加APL作为国会议员的构建依赖项:

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

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

    3. 李< / ol > < / >
    4. MP的属性中,在“Android”下,在库下添加了对APL的引用。

    1和2使Java类的引用正常工作…然而,当我试图从APL引用@style/Theme.AppCompat.Light时,我仍然在国会议员manifest.xml中看到了错误。当我执行第3步时,这种情况才消失。

我将分享我在这个问题上的经验。我都快疯了,但我发现问题出在Eclipse本身,而不是我的代码: 在eclipse中,无法在另一个android项目中引用一个android库项目 < / p >

所以,如果你在你的C:驱动器中有Android支持库,而你的项目在你电脑的D:驱动器中,Eclipse将不能正常工作,并且不会知道Android支持库在哪里(绿色的勾变成红色的叉)。要解决这个问题,您需要将两个项目移动到同一个硬盘驱动器上。

遵循@rcdmk的步骤。 在你的项目中删除android support v4.jar它与appcompat.

中发现的新更新版本冲突

如果像我一样,你正在遵循关于http://developer.android.com/training/basics/actionbar/setting-up.html的Android教程并不断得到这个错误,请尝试更改所有styles.xml文件中的AppBaseTheme样式。详细:

  1. 在文件res/values/styles.xml中修改行:

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

    :

    <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">
    
  2. In file res/values-v11/styles.xml change the line:

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

    :

    <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">
    
  3. In file res/values-v14/styles.xml change the line:

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

    :

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

Now the application should run fine.

http://developer.android.com/tools/support-library/setup.html有一个错误。 在属性->Java构建路径->“项目”和“订单和导出”中,不应该有任何jar的。 删除它们,并检查“Android Private Libraries”和“Android Dependencies”解决了我的问题

这是一个问题,可以发生在Android工作室,如果你修改项目结构模块。 在这种情况下,您可能需要再次添加依赖项。在文本编辑器中编辑build。Gradle '文件包含所需的依赖项:

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

这将更新您的“{your_project_name}”。Iml '文件与lib组件:

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

我犯了一个非常愚蠢的错误。当我每次都得到相同的错误时,我不知道哪里出了问题。然后我突然意识到,一旦我关掉了我工作空间里的所有项目,那就是所有问题开始的时间。所以只要检查你的“appcompat_v7”是否没有关闭。如果是,则双击打开项目,然后清理并重新构建项目。在我的例子中,错误已经消失了。编码快乐!

我不确定在这个问题发布时v13支持库是否可用,但如果有人仍然在挣扎,我已经看到添加android-support-v13.jar将修复一切。 这是我做的:

  1. 右键单击项目->属性
  2. 从左边的内容表中选择Java Build Path
  3. 转到图书馆选项卡
  4. 添加外部罐子按钮并选择<your sdk path>\extras\android\support\v13\android-support-v13.jar

我也遇到过同样的问题,浪费了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导入
  5. 选择你的项目,从文件中选择属性,找到Java Build Path,然后从“项目”选项卡删除其他内容,然后添加。你必须看到“android-support-v7-appcompat”,选择并将其添加到项目选项卡。
  6. 检查你的项目。属性文件在你的项目文件下面,你会看到这样的; 目标= 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>

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

  1. < p >文件→导入(android sdk \配件\ android \ \ v7 \ appcompat支持)

  2. 右键单击项目->属性→Android。在section library "Add"选择步骤1中包含的库appcompat

  3. 删除项目libs目录下的所有文件

  4. 将以下文件添加到项目的libs目录<SDK-PATH>\extras\android\support\v13android-support-v13.jar

    如果需要,重新启动Eclipse。就是这样。你的问题应该消失了。

对于Android Studio或IntelliJ,你所需要做的就是在gradle.build中更新你的依赖。我使用了以下方法:

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

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

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

IntelliJ IDEA或Android Studio:

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

dependencies {
compile "com.android.support:appcompat-v7:21.0.+"
}
如果你有19个平台,用你的构建目标替换-v:xx.0+ 那么它必须像这样:

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

当Eclipse(Luna)/AndroidSDK(不是Android Stduio)在2015年1月14日的HelloWorld项目中与最新的工具和库一起使用时,我就遇到了这种情况。当我安装这些工具并将HelloWorld作为第一个应用程序时,我接受了所有默认设置。——这就是我的问题所在。

首先,检查是否安装了“Android Support Library”库。 如果没有,请安装。默认情况下不安装。 你可以在菜单中的“Android SDK管理器”中完成这一切

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

< p >祝福, (债务人)& lt; > & lt; < / p >

最快的解决方法:

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

enter image description here

由于Android Studio 1.0.1中的导入对话框不同,我无法让Svyatoslav Lobachs版本工作。

相反,我在SDK管理器中下载了“Android支持资源库”。然后补充说

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

build.gradle。为我工作。

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

你最好创建一个任意名称的新项目,然后使用appcompat_v7这个程序创建新的项目。

Right Click Project-> properties->Android

在section库Add中,选择库appcompat。

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

接受的解决方案曾经对我有用,但现在不是了。我必须在一个新的工作空间中重新创建一个相同类型的hello-world(!),使其编译,然后复制所有目录,包括.hg.hgignorehg diff显示:< / p >
-        android:targetSdkVersion="19" />
+        android:targetSdkVersion="21" />


Binary file libs/android-support-v4.jar has changed

看起来Eclipse想要为API 21编译,而不能使用API 19做任何事情。黑暗。

Android Studio 1.2.2

parent属性值中删除"android":

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

这有点晚了,但这里是我如何在AndroidStudio完成它!

右键单击应用程序进入属性 右击app to goto properties

进入依赖项,点击“+”号,选择库依赖项 Go to Dependencies and click on '+' sign and choose library dependency 选择appcompat-v7 Choose appcompat-v7

.
如果你已经添加了appCompat库,并从SDK位置给出了适当的appCompat引用,请尝试“缓存失效/重启”。< br > 你可以在Android Studio的“文件”菜单中找到它

IntelliJ IDEA解决方案。

1.执行Android SDK管理器命令,安装最新的SDKAndroid支持库。SDK和Android支持库的版本应该是相同的!我是23岁。另一个变量会给出误差。< br > enter image description here < br > 将IDEA项目的SDK版本更改为上一步安装的最后一个版本。(注:您可能不使用Maven)。< br > enter image description here < / p > 从现有源代码中添加新模块到您的IDEA项目。< br > enter image description here < / p > 添加AppCompat项目。! !应该在最后一个SDK下! (ps.说“是”;在此步骤的任何地方)
enter image description here < / p >

5.打开你的主项目模块的设置,并添加到它下面3个依赖:

5.1.模块依赖关系。选择android-support-v7-appcompat < br > enter image description here < / p >

5.2. 2 pc。库依赖关系。添加android sdk \临时演员\ android支持\ \ v7 \ appcompat \ libs \ android-support-v4.jarandroid-support-v4 \ android-support-v7-appcompat.jar
enter image description here < / p >

总的来说是:
enter image description here < / p >

6. 非常重要! !
添加主题带有前缀@style(不是另一个!).
. enter image description here < / p >

< br > < br >

Android Studio解决方案。

1.执行Android SDK管理器命令,安装最新的SDKAndroid支持库。SDK和Android支持库的版本应该是相同的!我是23岁。另一个变量会给出误差。< br > enter image description here < br > < / p >

2.添加到build.gradle旁边

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

注:如果你是Android开发新手,我强烈建议你转到Android Studio &Gradle现在-你将得到最简单的方式来管理你的android应用程序。

在我的情况下,问题发生了,因为我想使用一个SDK,不包括所需的库。当我增加最小SDK级别时,问题就消失了。当然,直接包括库本身,也应该消除错误。

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

我也遇到了同样的问题,即使在导入/添加了答案中提到的jar/库之后,它也无法解决这个错误。出于沮丧,我只是创建了一个新的工作空间,并创建了一个新的android项目,它自动导入appcompat_v7,在清洁和构建上没有错误。不需要手动导入单个jar/库。仅供参考,我使用的是eclipse Mars.1发行版(4.5.1),每次我创建一个新的android项目时都面临着完全相同的问题。

我有错误信息:

错误:(18)错误检索父项:没有资源发现that 匹配给定的名称'Theme.AppCompat.NoActionBar'

这样配置:

  compileSdkVersion 23
buildToolsVersion "23.0.1"

我必须把主题从:

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

:

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