我正在按照this文档将FirebaseUI添加到我的项目中,但是遇到2个错误(找不到com.google.android.gms.phenotype和Google Play服务的提供商信息,或者缺少正确的权限。 )
当我在依赖项上写该行时,会发生此错误:
implementation 'com.firebaseui:firebase-ui-auth:4.0.0'
我的gradle应用程序:
apply plugin: 'com.android.application'
repositories {
mavenLocal()
flatDir {
dirs 'libs'
}
}
android {
compileSdkVersion 24
buildToolsVersion '27.0.3'
defaultConfig {
applicationId "com.google.firebase.udacity.friendlychat"
minSdkVersion 16
targetSdkVersion 24
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE-FIREBASE.txt'
exclude 'META-INF/NOTICE'
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
//firebase
implementation 'com.google.firebase:firebase-core:16.0.1'
implementation'com.google.firebase:firebase-database:16.0.1'
implementation'com.google.firebase:firebase-auth:16.0.2'
implementation 'com.firebaseui:firebase-ui-auth:4.0.0' // the problem is here ??
//noinspection GradleCompatible
compile 'com.android.support:design:24.2.0'
compile 'com.android.support:appcompat-v7:24.2.0'
// Displaying images
compile 'com.github.bumptech.glide:glide:3.6.1'
}
apply plugin: 'com.google.gms.google-services'
我的gradle项目:
buildscript {
repositories {
jcenter()
mavenLocal()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.3'
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()
mavenLocal()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
我的logcat:
e08-02 08:48:30.431 8422-8440 / com.google.firebase.chat E / ActivityThread:无法找到com.google.android.gms.phenotype的提供者信息
08-02 08:48:30.510 8422-8443 / com.google.chat E / FirebaseInstanceId: Google Play服务缺失或未经正确许可。
08-02 08:48:30.550 8422-8443 / com.google.chat E / FirebaseInstanceId: Google Play服务缺失或未经正确许可。
08-02 08:48:30.927 8422-8445 / com.google.chat E / ActivityThread:失败 查找com.google.android.gms.chimera的提供商信息
08-02 08:48:31.079 8422-8443 / com.google.chat E / FirebaseInstanceId: Google Play服务缺失或未经正确许可。
08-02 08:48:41.128 8422-8443 / com.google.chat E / FirebaseInstanceId: Google Play服务缺失或未经正确许可。
答案 0 :(得分:0)
要解决此问题,请更改以下代码行:
implementation 'com.firebaseui:firebase-ui-auth:4.0.0'
到
implementation 'com.firebaseui:firebase-ui-auth:4.1.0'
以及以下代码行:
classpath 'com.google.gms:google-services:4.0.1'
到
classpath 'com.google.gms:google-services:4.0.2'
似乎您还需要添加以下代码行:
implementation 'com.google.android.gms:play-services-auth:15.0.1'
答案 1 :(得分:0)
此问题似乎与设备有关,请确保测试设备上已安装Google Play服务。
答案 2 :(得分:0)
您需要使所有Google服务库的版本保持相似。 每个Firebase UI版本都对应一个特定的Google服务版本。
根据文档(https://github.com/firebase/FirebaseUI-Android)
从4.1.0版开始,FirebaseUI具有以下依赖项版本:
库版本 firebase-auth 16.0.1
play-services-auth 15.0.1
firebase-database 16.0.1 ....
已更新: 对于错误“缺少或未经正确许可的Google Play服务”,您可以尝试在此Link
中提出建议“下载google play服务sdk并在清单中添加ACCESS_FINE_LOCATION权限(如果未添加的话)”
答案 3 :(得分:0)
我找到了错误所在。 我改变了
compileSdkVersion 24
到
compileSdkVersion 24