我想在我的Android应用中实现Firebase-Messaging插件。我从github上的“ quickstart-android-master / messaging”示例开始: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:firebase-messaging:9.0.2”添加到我的应用中FirebaseApp未初始化!因此,FirebaseApp插件尚未启动! -未收到日志或令牌!
我还将“ app”-目录中的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'
和google-services插件build.gradle在“根”目录中:
buildscript {
// ...
dependencies {
// ...
classpath 'com.google.gms:google-services:3.0.0'
}
}
问题可能是:
我的问题是“清单合并”。如果我使用
xmlns:tools="http://schemas.android.com/tools"
和
tools:node="replace"
在清单的应用程序标签中,FirebaseApp将不会初始化!
如果您在tools:node上使用replace attr,它将替换您的带有注释的优先级较低的声明(查看更多here)。您应该使用merge或merge only属性代替。
这不起作用:
<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
!
就我而言,这些权限在Android Manifest文件中丢失:
<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" />
这为我解决了问题:
实现'com.google.firebase:firebase-crash:16.2.1'
实现'com.google.firebase:firebase-auth:16.1.0'
就我而言,我缺少权限<uses-permission android:name="android.permission.INTERNET"/>
然后重新安装该应用]
我有同样的问题,添加以下内容:
com.google.firebase:firebase-core高于com.google.firebase:firebase-messaging
dependences {
compile 'com.google.firebase:firebase-core:9.4.0'
compile 'com.google.firebase:firebase-messaging:9.4.0'
}