我正在尝试将firebase包含在我的android项目中,如官方firebase文档中所述。该应用程序非常基础,并使用Google的视觉API。
我遇到的错误:
Gradle同步失败:无法通知依赖项解析侦听器。 各种其他库都在[[11.0.4,11.0.4],[15.0.1,15.0.1]]请求库com.google.android.gms:play-services-basement,但解析为15.0。 1。禁用插件,并使用./gradlew:app:dependencies检查您的依赖关系树。
我已经尝试过解决网站上发布的类似问题的一些解决方案,但这些问题对我不起作用。更重要的是,我想了解根本原因,而不是盲目修改版本。
以下是我的gradle文件:
模块级别
apply plugin: 'com.android.application'
/* ... */
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:2.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.google.android.gms:play-services:11.0.4'
implementation 'com.google.firebase:firebase-core:16.0.1'
}
apply plugin: 'com.google.gms.google-services'
项目级别
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
classpath 'com.google.gms:google-services:4.0.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
运行./gradlew app:dependencies
给出:
无法通知依赖项解析侦听器。
其他[]。[11.0.4,11.0.4],[15.0.1,15.0.1]]的其他图书馆都在请求com.google.android.gms:play-services-basement库,但该库可以解析至15.0.1。禁用插件,并使用./gradlew:app:dependencies检查您的依赖关系树。
各种其他库都在[[11.0.4,11.0.4]]请求com.google.firebase:firebase-common库,但解析为16.0.0。禁用插件,并使用./gradlew:app:dependencies检查您的依赖关系树。
答案 0 :(得分:3)
更新以下内容:
classpath 'com.google.gms:google-services:4.0.1'
对此:
classpath 'com.google.gms:google-services:4.1.0'
也如文档所述:
注意:请勿使用组合的
play-services
目标。它带来了数十个库,使您的应用程序膨胀。而是仅指定您的应用使用的特定Google Play服务API。
因此,请删除此内容
implementation 'com.google.android.gms:play-services:11.0.4'
并添加具有更新版本的特定Google Play服务api,例如implementation 'com.google.android.gms:play-services-auth:16.0.1'
还将firebase-core更新为版本16.0.4
在此处查看更多信息:
https://developers.google.com/android/guides/setup
出现此错误时:
各种其他库都在[[15.0.1,15.0.1]]请求库com.google.android.gms:play-services-basement,但解析为16.0.1。
这意味着您在gradle中使用的直接依赖项(在google maven存储库中)正在使用传递性依赖项com.google.android.gms:play-services-basement
。
在这种情况下,firebase-core:16.0.1
使用play-services-basement:15.0.1
,而play-services-basement
的最新版本是16.0.1
,因此会出现此错误。
您还可以在2018年10月2日检查this,他们是否进行了以下操作:
对一些核心库(播放服务授权,播放服务基础,播放服务基础,播放服务标志,播放服务状态,播放服务任务)进行了较小的内部功能更新。由其他Google Play服务库使用。
他们还发布了com.google.android.gms:play-services-basement:16.0.1
和com.google.firebase:firebase-core:16.0.4
也可以在这里查看我的答案:
Android | Cannot add all Google libraries for version 15.0.1