我想在我的 Android 应用程序中实现 Firebase-Messaging 插件。
我从 github 上的“quickstart-android-master/messaging”示例开始:https://github.com/firebase/quickstart-android/tree/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 插件没有启动! - 没有收到日志或令牌!
我还将 apply 插件添加到“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'
以及“root”目录中的 build.gradle 的 google-services 插件:
buildscript {
// ...
dependencies {
// ...
classpath 'com.google.gms:google-services:3.0.0'
}
}
问题可能是:
- AndroidAnnotations、Proguard、产品风格...
我的问题是“清单合并”。
如果我使用
xmlns:tools="http://schemas.android.com/tools"
and
tools:node="replace"
在Manifest的Application Tag中,FirebaseApp不会被初始化!
如果你使用replace属性开启工具:节点它将取代你的
带有注释的较低优先级声明(请参阅更多)。你应该使用merge or 仅合并属性
反而。
所以我到底做了什么:
这不起作用:
<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
反而!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)