此错误消息是什么意思?我的项目中没有重复的包
错误:任务执行失败':SimpleReader:processDebugResources' 错误:包含名称为“com.google.android.gms”的多个库 您可以暂时禁用此错误 android.enforceUniquePackageName = false但是,这是暂时的 将在1.0
中执行
我的build.gradle
看起来像这样:
buildscript {
repositories {
maven { url 'http://repo1.maven.org/maven2' }
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.9.1'
}
}
apply plugin: 'android'
android {
buildToolsVersion '19.0.3'
defaultConfig {
minSdkVersion 14
targetSdkVersion 17
}
compileSdkVersion 17
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
}
buildTypes {
}
}
dependencies {
compile 'com.android.support:support-v4:19.0.1'
compile 'com.google.android.gms:play-services:4.2.42'
compile files('libs/gson-2.2.4.jar')
compile files('libs/httpmime-4.1.jar')
compile files('libs/httpclient-4.1.1.jar')
compile files('libs/jsoup-1.7.3.jar')
compile project(':libraries:actionbarsherlock')
compile project(':libraries:sherlocknavigationdrawer')
compile project(':libraries:googleplayservices')
compile project(':libraries:androidslidinguppanel')
compile files('libs/protocol-1.0.4.jar')
compile files('libs/sentry-0.1.4.jar')
compile files('libs/commons-lang-2.3.jar')
}
答案 0 :(得分:34)
在我的情况下,问题是因为我包括:
compile 'com.google.android.gms:play-services-wearable:+'
compile 'com.google.android.gms:play-services:4.4.52'
可穿戴式游戏服务和常规游戏服务。
我评论了可穿戴部分,它起作用了。
不确定我是否需要它,但项目向导默认包含它
答案 1 :(得分:16)
今天我遇到了同样的问题。我需要使用Google Analytics,因此我按照教程导入google analytics lib:
compile 'com.google.android.gms:play-services-analytics:9.0.0'
然后编译项目,gradle告诉我Error: more than one library with package name 'com.google.android.gms'
我绝对可以肯定,我只能通过com.google.android.gms
lib直接导入google analytics
。
所以我导航到Android Studio中的Project
标签以查看此项目所依赖的库,然后我在play-services-6.5.87
中显示External Libraries
,如下面的屏幕截图所示:
所以现在我知道还有另一个lib取决于play-services-6.5.87
,但我不知道它是哪个lib。
然后我在控制台中使用gradle命令来查看项目依赖项:
$ ./gradlew -q app:dependencies
结果告诉我com.facebook.android:audience-network-sdk:4.6.0
依赖它。
所以我们如何通过两种方式解决这个问题:
audience-network-sdk
,请将其删除。事实上我的项目并不需要它。如果您还需要audience-network-sdk
和google-analytics
,请使用exclude group
语法,例如关注代码段。
//facebook SDK
compile ('com.facebook.android:audience-network-sdk:4.6.0')
{exclude group: 'com.google.android.gms'}
// google analytics
compile 'com.google.android.gms:play-services-analytics:9.0.0'
在您的情况下,audience-network-sdk
可以是依赖于与其他lib相同的lib的任何其他lib。这里只是思考如何解决类似的问题。
答案 2 :(得分:7)
尝试删除compile project(':libraries:googleplayservices')
或compile 'com.google.android.gms:play-services:4.2.42'
。我很确定它们是同一个库。
答案 3 :(得分:1)
我遇到了类似的问题,我通过以下步骤解决了问题:
离子平台rm android
离子平台添加android
离子构建android
答案 4 :(得分:1)
这是版本的问题。如果您有相同包路径的多个依赖项,请确保版本相同
compile 'com.google.android.gms:play-services-ads:8.4.0'
compile 'com.google.android.gms:play-services-gcm:8.4.0'
答案 5 :(得分:1)
我很长一段时间都对这个问题感到困惑。虽然同样的错误日志,我的问题与问题没什么不同。我希望我的sublib的buildtype与我的应用程序的buildtype相同。所以我为文档告诉我分配了sublib的构建类型。 [Gradle Plugin用户指南] [1]
这是我得到的错误。
处理flavorCustomResource
错误:带有com.xxx.libCommon的多个库
这是我的结构。 lib1和lib2是相互独立的。
app
- > lib1 - > libCommon
- > lib2 - > libCommon
只有在构建自定义构建类型时才会出现错误。但是,发布版本还不错。
更多细节。我的build.gradle的某些部分
应用程式:
android {
buildTypes {
release{}
custom{}
}
}
configurations {
flavorReleaseCompile
flavorCustomCompile
}
dependencies{
compile project(':lib1')
flavorReleaseCompile project(path: ':lib2', configuration: ':release')
flavorCustomCompile project(path: ':lib2', configuration: ':custom')
}
LIB1:
android {
publishNonDefault true
buildTypes {
release{}
custom{}
}
}
dependencies{
releaseCompile project(path: ':libCommon', configuration: ':release')
customCompile project(path: ':libCommon', configuration: ':custom')
}
LIB2
dependencies {
compile project(':libCommon')
}
解决方案:将lib2配置为lib1。问题将得到解决。
LIB2:
android {
publishNonDefault true
buildTypes {
release{}
custom{}
}
}
dependencies{
releaseCompile project(path: ':libCommon', configuration: ':release')
customCompile project(path: ':libCommon', configuration: ':custom')
}
<强> 原因 强>
问题在于图书馆出版
默认发布是发布。如果没有配置lib2,它将使用与lib1不同的默认发布libCommon(发布版本) - &gt;由lib1的build.gradle分配的libCommon(自定义版本)。这就出现了错误。
我希望我的帖子可以帮助某些人解决同样的问题,或者给他/她一些暗示。