Google App Engine Java y Android Introducción
He estado luchando para obtener el ejemplo que se ejecuta desde abajo:
Https://developers.google.com/eclipse/docs/getting_started
- GoogleAuthException: desconocido al autenticar con puntos finales de Cloud
- Cómo implementar y usar google cloud sql en mi aplicación android (eclipse)
- java.awt.AWTError: Toolkit no encontrado: apple.awt.CToolkit Android appengineUpdate
- GCM duplicó mensajes
- Google App Engine y Android
El primer problema que tuve fue que no había instalado 'Google Cloud Messaging para Android Library' en el SDK de Android (obvio que sé).
Pero ahora tengo un problema con el código generado automáticamente en dos archivos en el proyecto de Android: GCMIntentService.java y RegisterActivity.java
Los errores son:
- El método getDeviceInfo (String) no está definido para el tipo Deviceinfoendpoint GCMIntentService.java
- El método listMessages () no está definido para el tipo MessageEndpoint RegisterActivity.java
- El método insertDeviceInfo (DeviceInfo) no está definido para el tipo Deviceinfoendpoint GCMIntentService.java
- El método removeDeviceInfo (String) no está definido para el tipo Deviceinfoendpoint GCMIntentService.java
Estoy usando Java SDK v1.7.0_15 en Ubuntu pero también probé en Windows 7 con Java SDK v1.6 y tenía el mismo problema. La última plataforma Android 4.2.2 y Google App Engine 1.7.7. Eclipse es Juno Service Release 2.
El problema parece que están haciendo algunos casting mal, porque hay un método getDeviceInfo para la clase interna DeviceInfoEndpoint dentro de Deviceinfoendpoint (capatilisations diferentes).
Podría tratar de arreglarlo, pero sólo me preguntaba si tengo algo mal en mi configuración para que esto suceda?
Cualquier ayuda sería apreciada.
- ¿Cuáles son las dependencias de gradle necesarias para un backend de App Engine con Google Cloud Messaging?
- Variedad de errores en la aplicación Mobile Backend Starter Sample
- Alcance de acceso utilizando el nombre de tipo en Google Cloud / Android Mobile Backend Starter
- Ubicación personalizada del almacén de datos en una máquina local con App Engine
- No se puede importar el punto final del motor de la aplicación en mi EndpointsAsyncClass en Android Studio
- Cómo analizar la propiedad DateTime de AppEngine en Java (Android)?
- @Nullable @Named en GAE / Android Muestra
- EOFException durante el uso de puntos finales de google
En su clase GCMIntentService.java, agregue .deviceInfoEndpoint () después del objeto de punto final en las líneas con errores como se muestra a continuación:
DeviceInfo existingInfo = endpoint.getDeviceInfo(registration) DeviceInfo existingInfo = endpoint.deviceInfoEndpoint().getDeviceInfo(registration)
En RegisterActivity.java cambiar la línea
messageEndpoint.listMessages().setLimit(5).execute();
a
messageEndpoint.messageEndpoint().listMessages().setLimit(5).execute();
Me aseguraría de que está utilizando la misma versión de API de GCM que tiene JARs. Ha habido bastantes revisiones.
Estoy usando el código siguiente con gcm-server.jar, enumerado en 19718 bytes.
El código que utilizo con éxito para enviar mensajes GCM a un dispositivo es:
public void sendMessage() { String notificationToken = mobileDevice.getPushNotificationCode(); String deviceType = mobileDevice.getDeviceType(); Sender sender = new Sender(BROWSER_API_KEY); Message message = new Message.Builder().addData("message", "blah blah").build(); String device = "<the key for the device you are sending to goes here>"; try { System.out.println("Sending message..."); Result result = sender.send(message, device, 5); System.out.println("Done sending message"); if (result.getMessageId() != null) { System.out.println("Got message ID: " + result.getMessageId()); System.out.println("Got error code name: " + result.getErrorCodeName()); System.out.println("result: " + result); String canonicalRegId = result.getCanonicalRegistrationId(); if (canonicalRegId != null) { // Database has more than one record for this device. // Replace all of this device's records with this new id System.out.println("Got new canonical reg id: " + canonicalRegId); } } else { String error = result.getErrorCodeName(); if (error.equals(com.google.android.gcm.server.Constants.ERROR_NOT_REGISTERED)) { // application has been removed from device - unregister from database System.out.println("Got error: " + error); } } } catch (Exception e) { e.printStackTrace(); } }
- No se puede empacar imágenes de resolución 800×800 utilizando libGDX texture packer con opción stripwhitespace?
- Cómo agregar el encabezado a un diseño lineal