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