首页 文章

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

提问于
浏览
339

我正在尝试实施Google几天前发布的新的ActionBar支持库 . 在过去,我使用Google Developer的Support Library Setup页面上列出的相同方法成功实现了ActionBarSherlock,没有任何问题 - 使用有关如何包含资源的指南(类似于ActionBarSherlock的做法) . 我将库项目作为库加载到我自己的项目中 .

我可以告诉图书馆加载正常 . 什么时候,我没有在我的MainActivity.java上扩展Activity,而是将其更改为扩展ActionBarActivity(根据Google的说明),没有错误发生 - 并且它正确导入 .

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

现在的问题是我无法让它改变主题,更不用说甚至构建而不会抛出错误 . 下面是我收到的错误,后面是我更改为使用新主题的style.xml文件 .

我有使用Android应用程序的适度经验,并使用最新版本的支持库和使用API 18(Android 4.3)编译的SDK运行Eclipse .

Error Received During Build

error:检索项目的父项时出错:找不到与给定名称“@ 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正在加载,但不是资源 .

30 回答

  • 0

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

  • 2

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

  • 28

    你需要做下一个:

    • File->Import (android-sdk\extras\android\support\v7) . 选择"AppCompat"

    • Project-> properties->Android. 在部分库"Add"中选择"AppCompat"

    • 就是这样!

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

  • 1

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

    • 文件 - >导入(android-sdk \ extras \ android \ support \ v7 \ appcompat)

    • 右键单击Project-> properties-> Android . 在部分库"Add"中,选择在步骤1中包含的库appcompat

    • 从项目的libs目录中删除所有文件

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

    如果需要,重启Eclipse . 而已 . 你的问题应该消失了 .

  • 15

    如果像我一样,您正在关注http://developer.android.com/training/basics/actionbar/setting-up.html上的Android教程并继续收到此错误,请尝试更改所有 styles.xml 文件中的 AppBaseTheme 样式 . 详细地:

    • 在文件 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">
    

    现在应用程序运行正常 .

  • 7

    我将分享我对这个问题的经验 . 我因此而疯狂,但我发现问题是Eclipse本身的错误,而不是我的代码:In eclipse, unable to reference an android library project in another android project

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

  • 0

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

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

    这应该用lib组件更新你的' .iml'文件:

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

    我在Eclipse中使用Android支持库( APL )项目和主项目( MP )执行了以下操作:

    • 确保 APLMP 具有相同的 minSdkVersiontargetSdkVersion .

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

    • 进入"Properties > Java Build Path"的 MP ,然后

    • 选择"Projects"选项卡并添加 APL .

    • MP 的属性中,在"Android"下,在库下添加了对 APL 的引用 .

    1和2得到了对Java类的引用工作正常...但是当我尝试从 APL 引用_799923时,我仍然在 manifest.xml 中看到 MP 中的错误 . 当我执行第3步时,这只会消失 .

  • 1

    它有点晚了,但这是我在AndroidStudio中完成它的方式!

    右键单击应用程序转到属性
    Right click on app to goto properties

    转到依赖项并单击'+' sign并选择库依赖项
    Go to Dependencies and click on '+' sign and choose library dependency
    选择appcompat-v7
    Choose appcompat-v7

  • 23

    IntelliJ IDEA解决方案 .

    1. 运行 Android SDK Manager 并安装 latest SDKAndroid Support Libarary . SDK和Android支持Libarary的版本应为 the same ! 23在我的情况下 . 另一种变体会给你错误 .

    enter image description here

    2. 将您的IDEA项目的SDK版本更改为您在上一步中安装的最后一个版本 . (ps . 你可能不会使用Maven) .

    enter image description here

    3. 将现有的新模块添加到您的IDEA项目中 .

    enter image description here

    4. 添加AppCompat项目 . !!! Should be under the last SDK too! (ps . 在此步骤的任何地方说"Yes")

    enter image description here

    5. 打开主项目模块的设置,然后添加3个项目:

    5.1. 模块依赖性 . 选择 android-support-v7-appcompat

    enter image description here

    5.2. 2个 . 图书馆依赖 . 添加 android-sdk\extras\android\support\v7\appcompat\libs\android-support-v4.jarandroid-support-v4\android-support-v7-appcompat.jar
    enter image description here

    总的来说将是:

    enter image description here

    6. Very important!!!
    添加主题 with prefix @style (not another!) .

    enter image description here

    Android Studio解决方案 .

    1. 运行 Android SDK Manager 并安装 latest SDKAndroid Support Libarary . SDK和Android支持Libarary的版本应为 the same ! 23在我的情况下 . 另一种变体会给你错误 .

    enter image description here

    2. build.gradle 旁边添加

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

    附:如果您是Android开发人员的新手,我强烈建议您立即转到Android Studio&Gradle - 您将获得管理Android应用程序的最简单方法 .

  • 24

    For Android Studio 1.2.2

    parent 属性值中删除"android":

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

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

  • 1

    对于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.+"
    }
    
  • 0

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

  • 9

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

    • 从SDK管理器中删除包"Android Support Library"和" Android Support Repository" .

    • 重新安装"Android Support Library"和" Android Support Repository"

    • 删除"android-support-v7-appcompat"或“appcompat_v7您项目中还有其他内容 .

    • 从"adt-bundle-windows-x86_64-20140702\sdk\extras\android\support\v7\appcompat"导入android-support-v7-appcompat

    • 选择您的项目,然后从文件中选择属性并找到Java Build Path,然后从"Project" tab中删除其他内容,然后选择Add . 并且您必须看到"android-support-v7-appcompat",选择并将其添加到“项目”选项卡 .

    • 检查项目文件下面的project.properties文件,你会看到这样的; target = android-21 android.library.reference.1 = .. / android-support-v7-appcompat然后检查AndroidManifest.xml文件,如果目标是21或你选择了什么 . 同时检查库引用是否与之前选择的库相同 .

    希望你能找到你的解决方案 .

  • 0

    作品:

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

    由于导入电话在Android Studio 1.0.1中有所不同,我无法使用Svyatoslav Lobachs版本 .

    相反,我在SDK Manager中下载了“Android Support Repository” . 然后补充说

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

    build.gradle . 为我工作 .

  • 0

    http://developer.android.com/tools/support-library/setup.html有个错误 . 在Property-> Java build path-> 'Project'和'Order and Export'中,不应该有任何jar 's. Removing them, and checking ' Android私有库' and ' Android Dependencies'解决了我的问题 .

  • 2

    右键单击我的项目并选择 Close Unrelated Projects 后,我遇到了与OP相同的问题 .

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

  • 114

    当Eclipse(Luna)/ AndroidSDK(不是Android Stduio)在2015年1月14日的HelloWorld项目期间与最新的工具和库一起使用时,它发生了 . 当我安装这些工具并将HelloWorld作为第一个应用程序时,我接受了所有默认设置 . - This is the problem in my case.

    首先,检查是否安装了“Android支持库”库 . 如果没有,请安装它 . 默认情况下不安装它 . 您可以在菜单中提供的“Android SDK manager”中完成所有操作 .

    (Android SDK Manager - > Extra - > Android支持库)

    祝福,(债务人)<> <

  • 12

    最快的解决方案:

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

    enter image description here

  • 5

    我为此犯了一个非常愚蠢的错误 . 每当我无法弄清楚出了什么问题时我都会得到同样的错误 . 然后它点击了我,一旦我关闭了我的工作空间中的所有项目,那是自所有问题开始以来的时间 . 所以,只需检查您的“appcompat_v7”是否未关闭 . 如果是,则双击打开项目,然后再次清理并构建项目 . 在我的情况下,错误消失了 . 快乐的编码!

  • 1

    我不确定在发布此问题时是否可以使用v13支持库,但是如果有人还在苦苦挣扎,我已经看到添加 android-support-v13.jar 将解决所有问题 . 这就是我做的方式:

    • 右键单击项目 - >属性

    • 从左侧的内容表中选择Java Build Path

    • 转到“库”选项卡

    • 添加外部 jar 按钮并选择 <your sdk path>\extras\android\support\v13\android-support-v13.jar

  • 2

    对于Android Studio或IntelliJ,您需要做的就是更新gradle.build中的依赖项 . 我使用了以下内容:

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

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

  • 0

    你最好用任何名字制作新项目,然后使用appcompat_v7程序制作新的 .

    Right Click Project-> properties->Android
    

    在部分库 Add 中,选择库appcompat .

  • 3

    在eclipse中右键单击您的项目 - >选择构建路径,然后选择configure build path . 从窗口中选择所需的jar文件并刷新项目

  • 386

    已经接受的解决方案曾经为我工作过一次,但不是现在 . 我不得不在一个新的工作区中重新创建一个同类的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做任何事情 . 黑暗 .

  • 0

    如果您已添加appCompat库并且还从SDK位置提供了适当的appCompat参考,请尝试"invalidate caches/Restart" .
    您可以在Android Studio的"File"菜单中找到它 .

  • 0

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

相关问题