studio play notification google gcm java android google-cloud-messaging

java - play - GCM anular el registro causando que la aplicación se bloquee



push notifications android (4)

Actualice los servicios de Google Play a la última versión (9.8.0) después de actualizar la biblioteca de soporte de Android a 25.0.0. Tuve el mismo problema esta mañana y esto me funcionó :)

He implementado notificaciones GCM en mi aplicación. Ahora estoy intentando cancelar el registro de la aplicación cuando el usuario cierra la sesión. Estoy usando el siguiente código. Cuando este código se ejecuta, la aplicación se bloquea con el siguiente logcat:

java.lang.IllegalAccessError: Method ''void android.support.v4.content.ContextCompat.<init>()'' is inaccessible to class ''com.google.android.gms.iid.zzd'' (declaration of ''com.google.android.gms.iid.zzd'' appears in /data/app/com.example.packagename-1/base.apk) at com.google.android.gms.iid.zzd.zzeb(Unknown Source) at com.google.android.gms.iid.zzd.<init>(Unknown Source) at com.google.android.gms.iid.zzd.<init>(Unknown Source) at com.google.android.gms.iid.InstanceID.zza(Unknown Source) at com.google.android.gms.iid.InstanceID.getInstance(Unknown Source) at com.zaryans.updatedepoultry.WelcomeActivity$11.onItemClick(WelcomeActivity.java:469) at android.widget.AdapterView.performItemClick(AdapterView.java:310) at android.widget.AbsListView.performItemClick(AbsListView.java:1145) at android.widget.AbsListView$PerformClick.run(AbsListView.java:3066) at android.widget.AbsListView$3.run(AbsListView.java:3903) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

Aquí está el código:

InstanceID instanceID = InstanceID.getInstance(WelcomeActivity.this); try { instanceID.deleteInstanceID(); Utility.logCatMsg("Logged Out Success!!!"); } catch (IOException e) { Utility.logCatMsg("Exception while logging out: "+e.getMessage()); e.printStackTrace(); }


No estoy seguro de que esto solucione su problema, pero siempre es una buena idea pasar el Context la aplicación a marcos de terceros, en lugar de instancias de Activity , ya que esta última puede provocar pérdidas de memoria. Intenta esto en su lugar:

InstanceID instanceID = InstanceID.getInstance(getApplicationContext());


Tuve el mismo problema después de actualizar la biblioteca de soporte a 25.0.0. Para mí, después de actualizar las siguientes bibliotecas, en el archivo gradle de la aplicación, el problema desapareció.

compile("com.google.android.gms:play-services-location:9.6.1") compile("com.google.android.gms:play-services-maps:9.6.1") compile("com.google.android.gms:play-services-gcm:9.6.1")


usar dependencias de la manera dada

compile ("com.google.android.gms:play-services-base:10.0.1") { force = true; } compile ("com.google.android.gms:play-services-maps:10.0.1") { force = true; } compile ("com.google.android.gms:play-services-gcm:10.0.1") { force = true; } compile (''com.google.firebase:firebase-core:10.0.1'') { force = true; } compile (''com.google.firebase:firebase-messaging:10.0.1'') { force = true; }