2016-07-05 52 views
14

Sto cercando di integrare FCM nel progetto Android come è scritto in Firebase documentation.Messaggistica Firebase NoSuchMethodError.zzUr'eccezione

Gradle

mio app:

dependencies { 
compile fileTree(include: ['*.jar'], dir: 'libs') 
testCompile 'junit:junit:4.12' 
... 
compile 'com.android.support:multidex:1.0.0' 
compile 'com.android.support:support-v4:20.0.0' 
compile 'com.google.firebase:firebase-core:9.2.0' 
compile 'com.google.firebase:firebase-config:9.2.0' 
compile 'com.google.firebase:firebase-messaging:9.0.2' 
compile 'com.google.firebase:firebase-crash:9.2.0' 
compile 'com.google.android.gms:play-services-ads:9.2.0' 
compile 'com.google.android.gms:play-services-analytics:9.2.0' 
compile 'com.google.android.gms:play-services-games:9.2.0' 
} 

apply plugin: 'com.google.gms.google-services' 

Manifest.xml:

<service 
    android:name=".MyFirebaseMessagingService"> 
    <intent-filter> 
     <action android:name="com.google.firebase.MESSAGING_EVENT"/> 
    </intent-filter> 
</service> 

E MyFirebaseMesagingService:

public class MyFirebaseMessagingService extends FirebaseMessagingService { 

@Override 
public void onMessageReceived(RemoteMessage remoteMessage) { 
    Log.i("info", "From: " + remoteMessage.getFrom()); 
    Log.i("info", "Notification Message Body: " + remoteMessage.getNotification().getBody()); 
} 

}

Ma quando i inviare spinta, cosa ottengo è:

java.lang.NoSuchMethodError: com.google.firebase.iid.FirebaseInstanceIdInternalReceiver.zzUr 
                 at com.google.firebase.messaging.FirebaseMessagingService.zzz(Unknown Source) 
                 at com.google.firebase.iid.zzb.onStartCommand(Unknown Source) 
                 at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2805) 
                 at android.app.ActivityThread.access$1900(ActivityThread.java:156) 
                 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1437) 
                 at android.os.Handler.dispatchMessage(Handler.java:99) 
                 at android.os.Looper.loop(Looper.java:153) 
                 at android.app.ActivityThread.main(ActivityThread.java:5299) 
                 at java.lang.reflect.Method.invokeNative(Native Method) 
                 at java.lang.reflect.Method.invoke(Method.java:511) 
                 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833) 
                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 
                 at dalvik.system.NativeStart.main(Native Method) 

Impossibile google. Qualcuno ha affrontato con esso?

+1

Provare a eseguire con tutti i servizi con gli stessi vers ion.In questo caso modifica compile 'com.google.firebase: firebase-messaging: 9.0.2' a 'compila' com.google.firebase: firebase-messaging: 9.2.0 'e verifica se lo stesso problema si verifica. –

+0

@sunilsunny, sì, è quello, scrivi una risposta per favore, lo accetterò – YTerle

risposta

23

Provare a eseguire tutti i servizi con la stessa versione. In questo caso, cambiare:

compile 'com.google.firebase:firebase-messaging:9.0.2' 

a

compile 'com.google.firebase:firebase-messaging:9.2.0' 

e verificare se lo stesso problema si verifica.

1

mantenere la stessa versione della libreria biblioteca e Firebase-messaging Firebase-core da modifiche apportate alla versione della libreria Firebase-messaging in costruzione Gradle

da:

compile 'com.google.firebase:firebase-core:9.2.0' 
compile 'com.google.firebase:firebase-messaging:9.0.2 

a:

compile 'com.google.firebase:firebase-core:9.2.0' 
compile 'com.google.firebase:firebase-messaging:9.2.0' 
3

Cambia le versioni di firebase1 Funziona per me!

Le versioni devono essere le stesse:

compile 'com.google.firebase:firebase-analytics:9.2.0' 
compile 'com.google.firebase:firebase-messaging:9.2.0' 
compile 'com.google.firebase:firebase-core:9.2.0' 
3

ho volto lo stesso problema e risolvere questo problema configurando regole Proguard correttamente.

Quello che ho fatto qui sotto, come di seguito: classi google

Per prima cosa ho dovuto escludere dalla offuscando come questo in proguard-rules.pro:

-keep public class com.google.** {*;} 

In secondo luogo ho attivato questa minifyEnabled in build.gradle in questo modo:

apply plugin: 'com.android.application' 

    android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.3" 

    defaultConfig { 
     applicationId "com.e2e.quiz" 
     minSdkVersion 15 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    } 

    dependencies { 
compile fileTree(include: ['*.jar'], dir: 'libs') 
testCompile 'junit:junit:4.12' 
compile 'com.android.support:appcompat-v7:23.1.1' 
compile 'com.android.support:recyclerview-v7:23.1.1' 
compile 'com.android.support:design:23.1.1' 
compile 'com.github.bumptech.glide:glide:3.6.1' 
compile 'com.squareup.picasso:picasso:2.4.0' 
compile 'com.google.android.gms:play-services-gcm:9.2.1' 
compile 'com.google.android.gms:play-services-analytics:9.2.1' 
compile 'com.google.android.gms:play-services-ads:9.2.1' 
compile project(':ast-dst') 

}