8

Desidero implementare il plug-in Firebase-Messaging nella mia app Android. Ho iniziato con "quickstart-android-master/messaging" -esempio da github: https://github.com/firebase/quickstart-android/tree/master/messagingAndroid - FirebaseApp/Firebase - L'inizializzazione non si avvia

Questo funziona per me! Log-in uscita:

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 

But if I want to implement the Plugin "com.google.firebase:firebase-messaging:9.0.2" into my app, the FirebaseApp isn't initialized! So the FirebaseApp plugin isn't starting! - No Log or token received!

ho aggiunto anche applicare plugin per build.gradle file in "app" -directory:

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' 

E il plug-in Google-servizi per costruire. Gradle nella directory "root":

buildscript { 
    // ... 
    dependencies { 
     // ... 
     classpath 'com.google.gms:google-services:3.0.0' 
    } 
} 

Problems could be:

  • AndroidAnnotations, Proguard, sapori prodotto ...
+0

Hai creato l'app sulla console di Firebase? –

+0

puoi mostrare il contenuto del tuo file gradle – Shubhank

+0

sì, l'ho creato sulla console di Firebase! E ho anche usato il mio nome-pacchetto nell'esempio. –

risposta

12

Il problema è la "Fusione Manifesto" di Android. Se uso il

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

e

tools:node="replace" 

nel tag applicazione del Manifesto, il FirebaseApp non verrà inizializzata!

Sommario: se si utilizza sostituire attr su strumenti: nodo sostituirà la tua dichiarazione di priorità inferiore a quello annotato (vedi più here). È necessario utilizzare unione o unire solo attributi.

Quindi quello che ho fatto esattamente:

Questo non funziona:

<application 
      android:name="xxx" 
      android:icon="@mipmap/ic_launcher" 
      android:label="@string/application_name" 
      android:theme="@style/Theme.TemplateStyle" 
      tools:node="replace"> 

questo funziona:

<application 
      android:name="xxx" 
      android:icon="@mipmap/ic_launcher" 
      android:label="@string/application_name" 
      android:theme="@style/Theme.TemplateStyle"> 
      <!-- tools:node="replace"--> 
+0

Quindi devo rimuovere lo strumento per il corretto funzionamento del firebase? –

+0

@devqualwebs, ho aggiornato la risposta. –

+1

Attualmente ho aggiornato agli strumenti: replace = "android: name" invece di tools: node = "replace". spero che sia di aiuto – Killer

-2

Ho avuto lo stesso problema, aggiungere il seguente:

com.google.firebase: firebase-core prima di com.google.firebase: firebase-messaging

dependences { 

    compile 'com.google.firebase:firebase-core:9.4.0' 
    compile 'com.google.firebase:firebase-messaging:9.4.0' 

} 
+3

questo non mi aiuta – pellyadolfo