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


69

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

但是现在,当我尝试与gradle文件同步项目时,它给了我102 errors以前没有的东西:

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

另有101个错误("no resources found that matches the given name..."大部分是重大错误)-由"build/intermediates/exploded-aar/com.android.support/appcompat-v7/21.0.0/res/values-v11/values.XML"

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

有人可以帮忙吗?谢谢。



按照上面链接的问题/答案更新您的SDK
gMale 2014年

Answers:


123

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

在Gradle(希望您正在使用)中,它是:编译'com.google.android.gms:play-services:6.1。+'

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


3
非常感谢你!我更改了Google Play服务的依存关系,它起作用了!
user3184899 2014年

我更新了所有组件,但没有使用GPlay服务,但仍然无法正常工作...您还有其他想法吗?编辑:更改了我所有其他依赖项,将版本号替换为“ +”,并且可以使用。请注意,这只是一个临时的解决办法
MathieuMaree

@ tilal6991对我来说,以上回复均不起作用,包括评论。我什至尝试更改构建工具,但没有效果。Heeeeelp !!!! :S
SeïfaneIdouchach

1
@SeïfaneIdouchach检查其是否未在属性文件attrs.xml中定义的您或第三方依赖项中的其他位置定义theme
克里斯·詹金斯(Chris.Jenkins),2014年

我有非常相似的问题。通过将我的子模块更新为最新版本的Google Play服务,AppCompat和支持库来解决它们。
Nestor Ledon 2015年

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

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

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


0

有时您正在使用的库具有此属性。我使用的是滑动面板库,在构建期间出现以下错误。我的依赖库中有以下项目:

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

我通过删除滑动库来解决我的问题:(


SlidingUpPanel中的此问题现已修复。
tokudu 2014年

0

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

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

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

到Studio在不询问我的情况下编辑gradle.build中的文件时:

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

然后让Studio进行同步,然后您的构建就可以正常工作了。


0

对于Eclipse用户:

因为如果遵循安装gps的建议,则工作区中只有它的副本,而不会更新。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.