it-swarm.com.ru

Android - FirebaseApp/Firebase-Initialization не запускается

Я хочу внедрить плагин Firebase-Messaging в мое Android-приложение . Я начал с примера "quickstart-Android-master/messaging" из github: https://github.com/firebase/ быстрый старт-Android/дерево/мастер/обмен сообщениями

Это работает для меня! Log-Output:

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 не запускается! - Никакой лог или токен получен!

Я также добавил плагин применения к файлу build.gradle в директории app:

    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'
    }
}

Проблемы могут быть:

  • Android Аннотации, Proguard, Ароматы продуктов ... 
12
Manuel Schmitzberger

Моя проблема заключалась в "Манифесте Слияния" . Если я использую 

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

а также 

tools:node="replace"

в теге приложения манифеста FirebaseApp не будет инициализирован!

Если вы используете replace attr в tools: node, он заменит ваш декларация с более низким приоритетом с аннотированной (см. подробнее здесь ). Вы должны использовать атрибуты 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!

17
Manuel Schmitzberger

Это закрыть вопрос для меня:

  • реализация "com.google.firebase: firebase-crash: 16.2.1"

  • реализация "com.google.firebase: firebase-auth: 16.1.0"

0
Ashot

В моем случае эти разрешения отсутствовали в файле 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
Srihari Karanth