我想在我的Android-App中实现Firebase-Messaging插件。 我已经开始使用" quickstart-android-master / messaging" -example from github:https://github.com/firebase/quickstart-android/tree/master/messaging
这对我有用! 登入输出:
D/FirebaseApp﹕ com.google.firebase.auth.FirebaseAuth is not linked. Skipping initialization.
D/FirebaseApp﹕ Initialized class com.google.firebase.iid.FirebaseInstanceId.
D/FirebaseApp﹕ com.google.firebase.crash.FirebaseCrash is not linked. Skipping initialization
D/FirebaseApp﹕ Initialized class com.google.android.gms.measurement.AppMeasurement.
I/FirebaseInitProvider﹕ FirebaseApp initialization successful
但是如果我想实现插件 " com.google.firebase:火力的消息:9.0.2"进入我的应用程序, FirebaseApp尚未初始化!所以FirebaseApp插件无法启动! - 没有收到日志或令牌!
我还在" app" -directory中添加了应用插件到build.gradle文件:
apply plugin: 'com.android.application'
android {
// ...
}
dependencies {
// ...
compile 'com.google.firebase:firebase-messaging:9.0.2'
}
// ADD THIS AT THE BOTTOM
apply plugin: 'com.google.gms.google-services'
和#34; root"中的build.gradle google-services插件目录:
buildscript {
// ...
dependencies {
// ...
classpath 'com.google.gms:google-services:3.0.0'
}
}
问题可能是:
答案 0 :(得分:17)
我的问题是“清单合并”。 如果我使用
xmlns:tools="http://schemas.android.com/tools"
和
tools:node="replace"
在Manifest的Application Tag中,FirebaseApp将不会被初始化!
如果您在工具:节点上使用替换 attr,它将取代您的 带注释的低优先级声明(参见更多信息 here)。您应该使用合并或仅合并属性 代替。
这不起作用:
<application
android:name="xxx"
android:icon="@mipmap/ic_launcher"
android:label="@string/application_name"
android:theme="@style/Theme.TemplateStyle"
tools:node="replace">
这有效:
<application
android:name="xxx"
android:icon="@mipmap/ic_launcher"
android:label="@string/application_name"
android:theme="@style/Theme.TemplateStyle">
<!-- tools:node="replace"-->
如果要覆盖或替换某些属性,请改用
tools:replace
!
答案 1 :(得分:0)
在我的情况下,Android清单文件中缺少这些权限:
<permission
android:name="com.app.appname.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="com.app.appname.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
答案 2 :(得分:0)
这为我解决了这个问题:
实现'com.google.firebase:firebase-crash:16.2.1'
实现'com.google.firebase:firebase-auth:16.1.0'
答案 3 :(得分:0)
就我而言,我缺少权限[Coredump]
#Storage=external
#Compress=yes
ProcessSizeMax=20G
ExternalSizeMax=20G
#JournalSizeMax=767M
#MaxUse=
#KeepFree=
然后重新安装该应用
答案 4 :(得分:0)
有问题的另一个迹象是像这样的 logcat 行
FirebaseAuth: [GetAuthDomainTask] Error getting project config. Failed with INVALID_CERT_HASH 400
FirebaseAuth: [SmsRetrieverHelper] SMS verification code request failed: unknown status code: 17093 null
检查 google-service.json,它应该有你的 apk sha1:
apk:sha1
SHA1: 4E:AA:54:E0:08:93:C6:CB:7B:8C:74:1E:2A:55:E7:60:XX:XX:XX:XX
google-service.json:
"certificate_hash": "4eaa54e00893c6cb7b8c741e2a55e760a5XXXXXX"
删除firebase中的整个Android项目,再次添加并添加您的apk sha1。 如果您的 sha1 密钥更改(即新应用),请再次删除 Android 项目并重新开始。
以前一怒之下加了sha256,也试过设置Android设备验证、SafetyNet等,这些都不需要。
答案 5 :(得分:-1)
我遇到了同样的问题,请添加以下内容:
com.google.firebase:com.google.firebase之前的firebase-core:firebase-messagingdependences {
compile 'com.google.firebase:firebase-core:9.4.0'
compile 'com.google.firebase:firebase-messaging:9.4.0'
}