我正在尝试实施Google几天前发布的新ActionBar支持库。在过去,我使用Google Developer Support Library Setup页面上列出的相同方法成功实施了ActionBarSherlock,没有任何问题 - 使用有关如何包含资源的指南(类似于ActionBarSherlock的做法)。我将库项目作为库加载到我自己的项目中。
我可以告诉图书馆加载正常。什么时候,我没有在MainActivity.java上扩展Activity,而是将其更改为扩展ActionBarActivity(根据Google的说明),不会发生任何错误 - 并且导入正确。
我甚至尝试绕过style.xml文件并将@style/Theme.AppCompat.Light
直接添加到<application>
和<activity>
的AndroidManifest.xml中android:theme="@style/ThemeAppCompat.Light"
所有尝试都会导致同样的错误。
现在的问题是我无法让它改变主题,更不用说甚至构建而不会抛出错误。下面是我收到的错误,后面是我更改为使用新主题的style.xml文件。
我有使用Android应用程序的经验,使用最新版本的支持库和使用API 18(Android 4.3)编译的SDK运行Eclipse。
构建期间收到错误
错误:检索项目的父项时出错:找不到与给定名称“@ style / Theme.AppCompat.Light”匹配的资源。 styles.xml / ActBarTest / res / values line 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正在加载,但不是资源。
答案 0 :(得分:386)
您需要做下一步:
File->Import (android-sdk\extras\android\support\v7)
。选择“AppCompat”Project-> properties->Android.
在“添加”部分库中选择“AppCompat”注意:如果您在菜单项中使用“android:showAsAction”,则需要更改前缀android,如示例中所示http://developer.android.com/guide/topics/ui/actionbar.html
答案 1 :(得分:117)
如果像我一样,您正在关注http://developer.android.com/training/basics/actionbar/setting-up.html上的Android教程并不断收到此错误,请尝试更改所有AppBaseTheme
文件中的styles.xml
样式。详细说明:
在文件res/values/styles.xml
中更改行:
<style name="AppBaseTheme" parent="android:Theme.Light">
为:
<style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">
在文件res/values-v11/styles.xml
中更改行:
<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
为:
<style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">
在文件res/values-v14/styles.xml
中更改行:
<style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">
为:
<style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
现在应用程序运行正常。
答案 2 :(得分:28)
我将分享我对这个问题的经验。我因此而疯狂,但我发现问题是Eclipse本身的错误,而不是我的代码: In eclipse, unable to reference an android library project in another android project
因此,如果您的C:驱动器中有Android支持库,而您的项目位于计算机上的D:驱动器中,Eclipse将无法正常运行,也无法知道Android支持库的位置(绿色勾选进入红十字会)。要解决此问题,您需要将两个项目移动到同一个硬盘驱动器上。
答案 3 :(得分:25)
如果修改项目结构模块,这是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" />
答案 4 :(得分:23)
我在Eclipse中使用Android支持库( APL )项目和主项目( MP )执行了以下操作:
确保 APL 和 MP 具有相同的minSdkVersion
和targetSdkVersion
。
添加 APL 作为 MP 的构建依赖项:
进入 MP 的“属性&gt; Java构建路径”,然后
选择“项目”标签并添加 APL 。
在 MP 的属性中,在“Android”下,在库下添加了对 APL 的引用。
1和2得到了对Java类的引用工作正常...但是当我尝试引用manifest.xml
时,我仍然看到@style/Theme.AppCompat.Light
中 MP 的错误强> APL 即可。当我执行第3步时,这只会消失。
答案 5 :(得分:16)
它有点晚了,但这是我在AndroidStudio中完成它的方法!
右键单击应用以转到属性
转到依赖关系,然后点击&#39; +&#39;签名并选择库依赖 选择appcompat-v7
答案 6 :(得分:12)
1。运行 Android SDK Manager 并安装最新SDK 和 Android支持图书馆。 SDK和Android支持Libarary的版本应该相同! 23在我的情况下。另一种变体会给你错误。
2. :将您的IDEA项目的SDK版本更改为您在上一步中安装的最后一个版本。 (ps。你可能不会使用Maven)。
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.jar 和 android-support-v4 \ android-support-v7-appcompat.jar 强>
6。 非常重要!!!
添加主题前缀@style(不是其他!)。
1。运行 Android SDK Manager 并安装最新SDK 和 Android支持图书馆。 SDK和Android支持Libarary的版本应该相同! 23在我的情况下。另一种变体会给你错误。
2。 build.gradle 旁边添加
dependencies {
compile 'com.android.support:appcompat-v7:23.0.1'
}
P.S。如果您是Android开发人员的新手,我强烈建议您转到Android Studio&amp; Gradle现在 - 您将获得管理Android应用程序的最简单方法。
答案 7 :(得分:9)
适用于Android Studio 1.2.2
掉落&#34; android&#34;来自parent
属性值:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"></style>
答案 8 :(得分:7)
你需要引用$ ANDROID_SDK / extras / android / support / v7 / appcompat
答案 9 :(得分:5)
对于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.+"
}
答案 10 :(得分:3)
我的问题通过以下步骤解决
将以下文件添加到项目的libs目录<SDK-PATH>\extras\android\support\v13android-support-v13.jar
如果需要,重启Eclipse。就是这样。你的问题应该消失。
答案 11 :(得分:3)
我遇到了同样的问题,浪费了4-5个小时来解决问题。我的问题解决了;
希望你能找到解决方案。
答案 12 :(得分:3)
按照@rcdmk的步骤操作。 删除您项目中的android支持v4.jar。它与appcompat中的新更新版本冲突。
答案 13 :(得分:2)
工作的:
<style name="MyApp" parent="Theme.AppCompat.Light">
</style>
<style name="MyApp" parent="@style/Theme.AppCompat.Light">
</style>
<style name="Theme.AppCompat.Light.MyApp">
</style>
答案 14 :(得分:2)
由于导入电话在Android Studio 1.0.1中有所不同,我无法使用Svyatoslav Lobachs版本。
相反,我下载了#34; Android支持信息库&#34;在SDK Manager中。然后添加
dependencies {
...
compile "com.android.support:appcompat-v7:18.0.+"
}
到build.gradle
。为我工作。
答案 15 :(得分:1)
右键单击我的项目并选择关闭不相关的项目后,我遇到了与OP相同的问题。
就我而言,我通过重新打开 appcompat_v7 项目并清理/重建这两个项目来解决问题。
答案 16 :(得分:1)
当Eclipse(Luna)/ AndroidSDK(不是Android Stduio)在2015年1月14日的HelloWorld项目期间与最新的工具和库一起使用时,发生了这种情况。当我安装这些工具并将HelloWorld作为第一个应用程序时,我接受了所有默认设置。 - 这是我的问题。
首先,检查&#34; Android支持库&#34;库已安装。 如果没有,请安装它。默认情况下不安装它。 您可以在&#34; Android SDK管理器&#34;中完成所有操作。可在菜单中找到。
(Android SDK Manager - &gt; Extra - &gt; Android支持库)
祝福, (债务人)&lt;&gt;&lt;
答案 17 :(得分:1)
最快的解决方案:
右键点击该项目 - &gt; Android工具 - &gt;添加支持库..
答案 18 :(得分:1)
http://developer.android.com/tools/support-library/setup.html有一个错误。 在Property-&gt; Java build path-&gt;'Project'和'Order and Export'中,不应该有任何jar。 删除它们,并检查“Android私有库”和“Android依赖项”解决了我的问题。
答案 19 :(得分:0)
我收到错误消息:
错误:(18)检索项目的父项时出错:找不到资源 匹配给定名称'Theme.AppCompat.NoActionBar'。
使用此配置:
compileSdkVersion 23
buildToolsVersion "23.0.1"
我必须改变主题:
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar"/>
为:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"/>
答案 20 :(得分:0)
我遇到了同样的问题,即使在导入/添加jar /库后,如答案中提到的那样也无法解决错误。出于沮丧,我刚刚创建了一个新的工作区并创建了一个新的android项目,它自动导入了appcompat_v7,并且在clean和build上没有任何错误。没有必要手动导入一个jar /库。仅供参考我正在使用eclipse Mars.1 Release(4.5.1)并且每次创建新的android项目时都面临完全相同的问题。
答案 21 :(得分:0)
忘记一切。只需使用Android Studio下载的appcompat库即可。它有所有缺少的定义。无论你是否在Eclipse中使用它。
答案 22 :(得分:0)
在我的情况下,问题发生了,因为我想使用不包含所需库的SDK。当我增加分钟。 SDK级别问题消失了。当然直接包括库本身,也应该删除错误。
答案 23 :(得分:0)
如果您已添加 appCompat 库并且还从SDK位置提供了适当的appCompat参考,请尝试&#34;使缓存无效/重新启动&#34; 。
您可以在Android Studio中的&#34;文件&#34; 菜单中找到它。
答案 24 :(得分:0)
我为此犯了一个非常愚蠢的错误。每当我无法弄清楚出了什么问题时我都会得到同样的错误。然后它点击了我,一旦我关闭了我的工作空间中的所有项目,那是自所有问题开始以来的时间。因此,只需检查您的“appcompat_v7”是否未关闭。如果是,则双击打开项目,然后再次清理并构建项目。在我的情况下,错误消失了。快乐的编码!
答案 25 :(得分:0)
接受的解决方案曾经为我工作过一次,但现在不行。我不得不在新的工作区中重新创建一个同类的hello-world(!),使其编译,然后复制所有目录,包括.hg
和.hgignore
。
hg diff
显示:
- android:targetSdkVersion="19" />
+ android:targetSdkVersion="21" />
Binary file libs/android-support-v4.jar has changed
看起来Eclipse想要为API 21编译,并且无法对API 19做任何事情。黑暗。
答案 26 :(得分:0)
答案 27 :(得分:0)
您最好使用任何名称制作新项目,然后使用appcompat_v7程序制作新项目。
Right Click Project-> properties->Android
在部分库Add
中,选择library appcompat。
答案 28 :(得分:0)
我不知道有多少人注意到这一点。支持库“appcompat_v7”和您的项目应该在同一个目录中(我的意思是工作区目录)。不要清理你的项目,直到它没有错误,否则你将很难与R.java
答案 29 :(得分:0)
我不确定在发布此问题时v13支持库是否可用,但如果有人仍在努力,我已经看到添加android-support-v13.jar
将解决所有问题。
我就这样做了:
<your sdk path>\extras\android\support\v13\android-support-v13.jar
答案 30 :(得分:0)
对于Android Studio或IntelliJ,您需要做的就是更新gradle.build中的依赖项。我使用了以下内容:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.2'
}