属性"主题"已在gradle中使用Play服务时定义

时间:2015-06-08 16:17:16

标签: android gradle google-play-services

在build.gradle文件中使用依赖项时:

compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.google.android.gms:play-services-location:7.5.0'

我收到错误:

Attribute \"theme\" has already been defined

在我的colors.xml中。如果我将依赖项更改为

compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.google.android.gms:play-services:7.5.0'

似乎有效 - 我没有收到错误。但我不想包括完整的游戏服务,我只想要位置服务。

为什么在仅包含位置服务时会出现此错误,我该如何解决?

注意:我知道有关此问题的现有问题,但答案说明只使用"最新"版本,并指的是播放服务6.x.我使用Play服务7.5并得到错误,所以这是不同的。

1 个答案:

答案 0 :(得分:0)

经过大量的猜测和失败的试错后,我发现我对segment.io的旧依赖包括Play服务库,现在它包括了旧库的完整版本,因为我没有。

问题是Google电子钱包。我在Wallet的attrs.xml中找到了一个属性“theme”。定义名为“theme”的属性并不是最好的想法,因为AppCompat库必须使用它来替换Android系统主题属性。所以这个文件有问题:

build\intermediates\exploded-aar\com.google.android.gms\play-services\5.0.89\res\values\wallet-attrs.xml

我通过替换它解决了这个问题:

compile('io.segment.analytics.android:all:1.4.4@aar')

有了这个:

compile('com.segment.analytics.android:analytics-core:3.1.3@aar')

我发布了一篇关于此权利的完整博文here on my blog