在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并得到错误,所以这是不同的。
答案 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。