我们已关注Add Firebase to your Android Project,但我们无法看到应用在Firebase控制台中接收数据 当我们启动应用程序时,日志显示:
FirebaseInitProvider: FirebaseApp initialization unsuccessful
这是什么意思?我们做错了什么?
我无法在文档中找到此错误,也无法在StackOverflow中找到此错误。
答案 0 :(得分:38)
这是什么意思?我们做错了什么?
假设认证没有成功。
a)项目级别buildscript
的{{1}} repositories
和dependencies
:
build.gradle
b)模块级buildscript {
repositories {
google()
jcenter()
}
dependencies {
// Android Gradle Plugin
classpath "com.android.tools.build:gradle:3.3.2"
// Google Services Plugin
classpath "com.google.gms:google-services:4.2.0"
}
}
的{{1}}(Android英特尔x86图片可能仍安装了以前版本的Google Play服务,例如。{{ 1}}在当前dependencies
模拟器上运行,而例如。app/build.gradle
在我的物理10.2.0
设备上运行。除非排除某些模块,否则引用x86
和11.8.0
将包含所有模块。 更新:现在必须单独引用所有库。引用ARM
和play-services
不再适用firebase-core
。
com.google.android.gms:play‐services
c)com.google.firebase:firebase-core
的底线应为:
15.0.0
d)确保android {
...
buildTypes {
debug {
// suffixing the package name for debug builds,
// in order to partially mute the crash-reporting
// is an *optional* configuration (see below):
applicationIdSuffix ".debug"
}
}
}
dependencies {
// Google Play Services
// https://developers.google.com/android/guides/releases
api "com.google.android.gms:play-services-base:15.0.1"
api "com.google.android.gms:play-services-auth:16.0.0"
api "com.google.android.gms:play-services-identity:15.0.1"
// Google Firebase
// https://firebase.google.com/support/release-notes/android
api "com.google.firebase:firebase-core:16.0.1"
api "com.google.firebase:firebase-auth:16.0.3"
api "com.google.firebase:firebase-config:16.0.0"
api "com.google.firebase:firebase-storage:16.0.1"
api "com.google.firebase:firebase-database:16.0.1"
api "com.google.firebase:firebase-messaging:17.3.0"
api "com.google.firebase:firebase-appindexing:16.0.1"
api "com.google.firebase:firebase-functions:16.1.0"
api "com.google.firebase:firebase-invites:16.0.1"
// api "com.google.firebase:firebase-crash:16.0.1"
api "com.google.firebase:firebase-ads:15.0.1"
api "com.google.firebase:firebase-firestore:17.0.4"
api "com.google.firebase:firebase-perf:16.0.0"
// the inappmessaging may cause dependency conflicts:
// api "com.google.firebase:firebase-inappmessaging:17.0.0"
// api "com.google.firebase:firebase-inappmessaging-display:17.0.0"
}
提供(已下载)凭证;在Firebase控制台上,必须添加调试和版本密钥的两个 SHA1(或SHA256)哈希,以便使两个版本都正确进行身份验证;一旦全部匹配,就应该报告:
mobile/build.gradle
这些都有详细记录,只需看Setup Google Play Services,Firebase Quickstart或Crash Reporting;虽然我在Firebase博客上发现这篇文章非常有用:Organizing your Firebase-enabled Android app builds,因为它解释了如何部分静音崩溃报告。 release notes始终宣布更新&变化。
答案 1 :(得分:17)
当您apply plugin: 'com.google.gms.google-services'
中没有app/build.gradle
时,就会发生这种情况。尝试添加它。
另外,请确保您已在Android SDK Manager中安装了Google Play服务SDK。
答案 2 :(得分:3)
我建议你检查的第一件事是:
1)您是否已将<uses-permission android:name="android.permission.INTERNET" />
包含在Manifest中?
答案 3 :(得分:3)
确保已将此行添加到应用级build.gradle
文件
apply plugin: 'com.google.gms.google-services'
答案 4 :(得分:2)
整个问题的发生有两个原因:
1。您还没有在mainfest上采取过妥协的态度
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
[在此处输入图片描述] [1]
2。您的gradle构建版本存在错误- 项目级别依赖性
classpath 'com.google.gms:google-services:4.1.0'
替换为
classpath 'com.google.gms:google-services:4.0.1'
答案 5 :(得分:1)
就我而言,我在Gradle中做了所有事情。即使它显示FirebaseApp initialization unsuccessful
我在清单中添加了com.google.android.c2dm.permission.RECEIVE permission
来解决我的问题。
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
答案 6 :(得分:0)
我得到了相同的Logcat输出。
通过在我的app / build.gradle中将Google Play Services
依赖关系更新为9.0.0来修复它
并更新
buildScript {
//...
dependencies {
//...
classpath 'com.google.gms:google-services:3.0.0'
}
}
在我的项目build.gradle到3.0.0
答案 7 :(得分:0)
在我的情况下,我试图选择性地编译Google Play服务。 而不是使用
while (true) {
BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
DataBuffer buff = img.getRaster().getDataBuffer();
System.out.println(buff.getSize() * DataBuffer.getDataTypeSize(buff.getDataType()) / 8);
}
如:https://developers.google.com/android/guides/setup#ensure_devices_have_the_google_play_services_apk
所述我手动将Google Play服务中的地图和其他依赖项模块添加为
compile 'com.google.android.gms:play-services:9.4.0'
不幸的是,Firebase在此之后停止工作。
结果我不得不回滚并返回使用
compile 'com.google.android.gms:play-services-maps:9.4.0'
compile 'com.google.android.gms:play-services-places:9.4.0'
而非选择性。
答案 8 :(得分:0)
我也面临着类似的问题。我已将我的Google开发人员项目导入Firebase,并按照Android Studio应用和Firebase控制台中的说明进行了所有步骤,即添加依赖项,google-services.json文件并再次构建。
它仍然不会将数据发送到Firebase控制台。因此,在浏览日志时,由于google_app_id似乎丢失,Firebase无法初始化。
经过反复试验,我不得不在res/values/strings.xml
文件中添加新的字符串资源。
<string name="google_app_id">YOUR_GOOGLE_APP_ID</string>
您可以从Firebase控制台的标题mobilesdk_app_id
下下载的google_services.json文件中找到Google App ID。
"client": [
{
"client_info": {
"mobilesdk_app_id": "SOMETHING"
}
.
.
.
复制mobilesdk_app_id
并将其粘贴到res/values/strings.xml
文件中名称为google_app_id
的字符串资源中。
重建代码,它应该可以工作。 :)
答案 9 :(得分:0)
在build.gradle(项目级别)中
更改
classpath 'com.google.gms:google-services:4.1.0'
对此
classpath 'com.google.gms:google-services:4.0.1'