studio notificaciones how google gcm fcm change airport android google-cloud-messaging

notificaciones - El paquete com.google.android.gsf no se pudo encontrar



notificaciones push android google cloud messaging(gcm) (2)

Probablemente se está ejecutando en un dispositivo que no es compatible con GCM, por lo que su llamada a GCMRegistrar.checkDevice (esto); está lanzando una excepción. Verifique su logcat para estar seguro.

Si lo prueba en un emulador, asegúrese de tener el emulador configurado para usar las API de Google. Cuando crea el emulador, la ventana Crear AVD nueva tiene un cuadro "Destino". Seleccione algo en ese cuadro que dice "API de Google".

Intento usar el nuevo sistema de Google Cloud Messaging, pero tengo algunos problemas.

Leí el documento Getting Started y revisé la aplicación de demostración; después de eso apliqué requisitos a mi aplicación y luego creé un nuevo dispositivo virtual con API 16.

Pero cuando intento registrar mi dispositivo en GCM, falla debido a esta línea:

GCMRegistrar.checkDevice(getApplicationContext());

En logcat veo estos errores:

07-05 07:06:31.925: E/AndroidRuntime(691): FATAL EXCEPTION: main 07-05 07:06:31.925: E/AndroidRuntime(691): java.lang.UnsupportedOperationException: Device does not have package com.google.android.gsf 07-05 07:06:31.925: E/AndroidRuntime(691): at com.google.android.gcm.GCMRegistrar.checkDevice(GCMRegistrar.java:83) 07-05 07:06:31.925: E/AndroidRuntime(691): at aero.tav.mobile.genel$4.onClick(genel.java:201) 07-05 07:06:31.925: E/AndroidRuntime(691): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166) 07-05 07:06:31.925: E/AndroidRuntime(691): at android.os.Handler.dispatchMessage(Handler.java:99) 07-05 07:06:31.925: E/AndroidRuntime(691): at android.os.Looper.loop(Looper.java:137) 07-05 07:06:31.925: E/AndroidRuntime(691): at android.app.ActivityThread.main(ActivityThread.java:4745) 07-05 07:06:31.925: E/AndroidRuntime(691): at java.lang.reflect.Method.invokeNative(Native Method) 07-05 07:06:31.925: E/AndroidRuntime(691): at java.lang.reflect.Method.invoke(Method.java:511) 07-05 07:06:31.925: E/AndroidRuntime(691): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 07-05 07:06:31.925: E/AndroidRuntime(691): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 07-05 07:06:31.925: E/AndroidRuntime(691): at dalvik.system.NativeStart.main(Native Method)

Yo había agregado gcm.jar a mi ruta de clase; No sé lo que está mal.


me parece que estás usando el emulador incorrecto.

El emulador predeterminado usa un emulador de Android normal que no tiene ningún paquete de Google y no puede ejecutar todo tipo de cosas como mapas, c2dm y todo tipo de cosas así.

lo que quiere hacer es crear un nuevo emulador que pueda admitir las API de Google.

luego, cuando ejecute el proyecto, elija el emulador que ejecuta el nombre de destino Google APIs (Google Inc).

buena suerte.