Android-FirebaseApp / Firebase初始化未启动

问题描述 投票:14回答:5

我想在我的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'
    }
}

问题可能是:

  • AndroidAnnotations,Proguard,产品口味...
android push-notification firebase google-cloud-messaging
5个回答
19
投票

我的问题是“清单合并”。如果我使用

xmlns:tools="http://schemas.android.com/tools"

tools:node="replace"

在清单的应用程序标签中,FirebaseApp将不会初始化!

如果您在tools:node上使用replace attr,它将替换您的带有注释的优先级较低的声明(查看更多here)。您应该使用mergemerge 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


0
投票

就我而言,这些权限在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" />

0
投票

这为我解决了问题:

  • 实现'com.google.firebase:firebase-crash:16.2.1'

  • 实现'com.google.firebase:firebase-auth:16.1.0'


0
投票

就我而言,我缺少权限<uses-permission android:name="android.permission.INTERNET"/>然后重新安装该应用]


-1
投票

我有同样的问题,添加以下内容:

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'

}
© www.soinside.com 2019 - 2024. All rights reserved.