FirebaseInitProvider:FirebaseApp初始化失败

时间:2016-05-19 11:23:18

标签: android firebase gradle

我们已关注Add Firebase to your Android Project,但我们无法看到应用在Firebase控制台中接收数据 当我们启动应用程序时,日志显示:

FirebaseInitProvider: FirebaseApp initialization unsuccessful

这是什么意思?我们做错了什么?
我无法在文档中找到此错误,也无法在StackOverflow中找到此错误。

10 个答案:

答案 0 :(得分:38)

  

这是什么意思?我们做错了什么?

假设认证没有成功。

a)项目级别buildscript的{​​{1}} repositoriesdependencies

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设备上运行。除非排除某些模块,否则引用x8611.8.0将包含所有模块。 更新:现在必须单独引用所有库。引用ARMplay-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 ServicesFirebase QuickstartCrash 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'