Lollipop AppCompat-v7 21 - 属性“主题”已经定义

时间:2014-10-17 19:29:24

标签: android android-5.0-lollipop

我想升级我的项目以支持Android Lollipop和API 21,所以我将依赖的AppCompat版本更改为21.0.0, 和我的目标SDK到21。

但是现在,当我尝试将项目与gradle文件同步时,它会让我102 errors之前不存在:

"Attribute 'theme' has already defined"的1个错误 - 由我的colors.XML文件提供,

以及"no resources found that matches the given name..."的另外101个错误 - 其中大多数是重要错误 - 由"build/intermediates/exploded-aar/com.android.support/appcompat-v7/21.0.0/res/values-v11/values.XML"给出。

已经更新了Android SDK软件中的所有SDK工具, 使用Android Studio 0.8.9 Beta。

有人可以帮忙吗?感谢。

6 个答案:

答案 0 :(得分:123)

我也有第一个问题。可以通过将Google Play服务依赖关系更新为6.1。+。

来解决此问题

在Gradle(我希望你使用的)这是: 编译'com.google.android.gms:play-services:6.1。+'

至于第二个问题 - 正如人们在评论中所说,你应该确保SDK安装中的所有组件都是最新的。

答案 1 :(得分:17)

我遇到了同样的问题,但升级到最新版本并没有帮助。

但错误消息Attribute “theme” has already been defined已更改为Attribute “layout” has already been defined

在Google Play服务更改中,我发现了这个

  <declare-styleable name="WalletFragmentOptions">
         <!-- Theme to be used for the Wallet selector -->
-        <attr name="theme" format="enum">
+        <attr name="appTheme" format="enum">

这是关键。

如果您的attr.xml属性主题布局或其他内容 - 请重命名。合并似乎无法解决它。

答案 2 :(得分:2)

Android工作室中的Gradle建议使用com.google.android.gms:play-services的最新版本。 将其更新到最新版本后,问题就解决了。

编译'com.google.android.gms:play-services:8.3.0'

答案 3 :(得分:0)

有时您使用的库具有此属性。我正在使用Sliding up panel库,我在构建期间遇到了以下错误。我在依赖库中有以下项目:

dependencies {
    compile 'com.android.support:appcompat-v7:20.0.0'
    compile 'com.sothree.slidinguppanel:library:+'
    // ...
}

我通过删除滑动库修复了我的问题:(

答案 4 :(得分:0)

在我的项目中添加新活动后,似乎Android Studio会在错误开始出现之后自动更新我的依赖项。

我将以下依赖项更改为最新的兼容性库:

compile 'com.android.support:support-v4:21.0.3'
compile 'com.android.support:appcompat-v7:21.0.3'

我在gradle.build中的那些,在Studio编辑它之前没有问我:

compile 'com.android.support:support-v4:20.0.0'
compile 'com.android.support:appcompat-v7:20.0.0'

然后让Studio进行同步,你的构建应该可以工作。

答案 5 :(得分:0)

对于Eclipse用户:

因为如果您按照推荐安装gps,那么您的工作区中只会有一份副本,而不会更新。