Android FirebaseInitProvider:FirebaseApp初始化失败

Android FirebaseInitProvider:FirebaseApp初始化失败,android,firebase,gradle,Android,Firebase,Gradle,我们已遵循,但无法看到应用程序在Firebase控制台中接收数据。 当我们启动应用程序时,日志显示: FirebaseInitProvider: FirebaseApp initialization unsuccessful 这是什么意思?我们做错了什么? 我在文档中找不到此错误,在StackOverflow中也找不到此错误。当您的应用程序/build.gradle中没有应用插件:“com.google.gms.google services”时,就会发生此错误。尝试添加它 还要确保在Andr

我们已遵循,但无法看到应用程序在Firebase控制台中接收数据。
当我们启动应用程序时,日志显示:

FirebaseInitProvider: FirebaseApp initialization unsuccessful
这是什么意思?我们做错了什么?

我在文档中找不到此错误,在StackOverflow中也找不到此错误。

当您的
应用程序/build.gradle
中没有应用插件:“com.google.gms.google services”时,就会发生此错误。尝试添加它


还要确保在Android SDK管理器中安装了Google Play services SDK。

我得到了相同的Logcat输出

通过在我的app/build.gradle中将我的
googleplay服务
Dependency更新为9.0.0来修复它

更新

buildScript {
    //...
    dependencies {
        //...
        classpath 'com.google.gms:google-services:3.0.0'
    }
}
在我的项目中build.gradle到3.0.0

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

将假定身份验证未成功

a)
buildscript
存储库
依赖项
用于项目级别的
build.gradle

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"
    }
}
b)
模块的
依赖项
级别
app/build.gradle
(Android Intel x86映像可能仍然安装了Google Play服务的早期版本,例如,
10.2.0
在当前的
x86
模拟器上运行,而
11.8.0
在我的物理
ARM
设备上运行)。参考
play services
firebase core
将包括其所有模块,除非排除部分模块。更新:现在必须单独参考所有库。参考
com.google.android.gms:play-services
com.google.firebase:firebase core
由于
15.0.0
,因此不再工作

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
    implementation "com.google.android.gms:play-services-base:15.0.1"
    implementation "com.google.android.gms:play-services-auth:16.0.0"
    implementation "com.google.android.gms:play-services-identity:15.0.1"

    // Google Firebase
    // https://firebase.google.com/support/release-notes/android
    implementation "com.google.firebase:firebase-core:16.0.1"
    implementation "com.google.firebase:firebase-auth:16.0.3"
    implementation "com.google.firebase:firebase-config:16.0.0"
    implementation "com.google.firebase:firebase-storage:16.0.1"
    implementation "com.google.firebase:firebase-database:16.0.1"
    implementation "com.google.firebase:firebase-messaging:17.3.0"
    implementation "com.google.firebase:firebase-appindexing:16.0.1"
    implementation "com.google.firebase:firebase-functions:16.1.0"
    implementation "com.google.firebase:firebase-invites:16.0.1"
    // implementation "com.google.firebase:firebase-crash:16.0.1"
    implementation "com.google.firebase:firebase-ads:15.0.1"
    implementation "com.google.firebase:firebase-firestore:17.0.4"
    implementation "com.google.firebase:firebase-perf:16.0.0"

    // the inapp messaging may cause dependency conflicts: 
    // implementation "com.google.firebase:firebase-inappmessaging:17.0.0"
    // implementation "com.google.firebase:firebase-inappmessaging-display:17.0.0"
}
c)
mobile/build.gradle
的底线应该是:

// apply the Google Services Plugin
apply plugin: "com.google.gms.google-services"
d) 确保在
app/google services.json
上提供(下载的)凭据;在Firebase控制台上,必须添加调试密钥的SHA1(或SHA256)散列和发布密钥的SHA1(或SHA256)散列,以便两个版本都能正确验证;一旦全部匹配,应报告:

I/FirebaseInitProvider: FirebaseApp initialization successful

所有这些都有很好的记录,只是看看,或者;虽然我发现Firebase博客上的这篇文章非常有用,因为它解释了如何部分禁用崩溃报告。始终会宣布更新和更改。

我建议您检查的第一件事是:


1) 您是否将
包含在清单中?

在我的例子中,我试图有选择地编译Google play服务。 而不是使用

compile 'com.google.android.gms:play-services:9.4.0'
如所述:

我在Google Play Services中手动添加了地图和一些其他依赖项模块

compile 'com.google.android.gms:play-services-maps:9.4.0'
compile 'com.google.android.gms:play-services-places:9.4.0'
在此之后,Firebase停止了工作

因此,我不得不回滚并返回使用

compile 'com.google.android.gms:play-services:9.4.0'

而不是选择性地。

确保已将此行添加到应用程序级别的
build.gradle
文件中

apply plugin: 'com.google.gms.google-services'

就我而言,我在格拉德尔的一切都做得很好。即使显示
FirebaseApp初始化不成功

我在清单中添加了
com.google.android.c2dm.permission.RECEIVE permission
,解决了我的问题

 <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
 <uses-permission android:name="android.permission.INTERNET" />

我也面临着类似的问题。我已将我的Google developer项目导入Firebase,并按照Android studio应用程序和Firebase控制台中的说明完成了所有步骤,即添加依赖项、Google-services.json文件并重新构建

它仍然不会将数据发送到Firebase控制台。因此,在查看日志时,Firebase无法初始化,因为谷歌应用程序id似乎丢失了

经过多次尝试和错误,我不得不在我的
res/values/strings.xml
文件中添加一个新的字符串资源

    <string name="google_app_id">YOUR_GOOGLE_APP_ID</string>
复制
mobilesdk_app_id
并将其粘贴到名为
google_app_id
res/values/strings.xml
文件中的字符串资源中

"client": [
    {
      "client_info": {
        "mobilesdk_app_id": "SOMETHING"
      }
    .
    .
    .

重新生成代码,它应该可以工作。:)

整个问题的出现有两个原因:

1。您没有在mainfest中取得许可证

<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />

[在此处输入图像描述][1]

2。你的gradle版本有bug- 项目级依赖关系

classpath'com.google.gms:googleservices:4.1.0'

取代

classpath'com.google.gms:googleservices:4.0.1'

在build.gradle中(项目级)

改变

    classpath 'com.google.gms:google-services:4.1.0'
对此

    classpath 'com.google.gms:google-services:4.0.1'

这里也有同样的问题。Firebase总是在应用程序旁边显示一个微调器,当你点击它时,分析和崩溃都会抛出一个错误。它发生在一个从谷歌控制台导入的项目上,新项目似乎运行良好…我尝试在firebase中创建一个新项目,但问题仍然存在。我想问一下,为什么我们需要classpath'com.google.gms:google services:3.0.0',因为最新版本是:9.4.0?@Dharviksah,因为只有一个
com.google.gms:google services:3.0.0
。一个打包为Gradle插件,另一个打包为库<代码>谷歌服务
!=<代码>播放服务。也在上面添加了一些注释。这在我的案例中引发了一个问题:“错误:任务执行失败”:app:transformClassesWithDexForDebug.>com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException:java.util.concurrent.ExecutionException:com.android.dex.DexIndexOverflowException:方法ID不在[0,0xffff]:65536.这是什么?我如何修复它?@androiddeveloper您可能会超过64K索引限制,
multiDexEnabled true
应该会有帮助-在Android>5.0上,这应该是默认值。请看(Firebase没有问题)@syslogic不能。这是一个非常小的项目。很好!有时会发生这种情况