Parse.com runtime crash – android
Estoy recibiendo una gran cantidad de informes de los usuarios acerca de mi aplicación se estrelló. El error constante parece estar asociado con mi inicialización parse.com, sin embargo, lo he configurado como se describe en el tutorial de análisis.
Aquí está el rastro de la pila:
- Cambiar el nombre del paquete de Android para el proyecto de phonegap
- Códigos de error de GCM
- Cómo capturar la aplicación de desinstalación en el dispositivo y dejar que el servidor sepa esto (iOS / Android)
- Phonegap PushNotification para abrir una página de aplicación específica
- Envío de mensajes (notificación) a un grupo - Android
java.lang.RuntimeException: Unable to start receiver com.parse.ParseBroadcastReceiver: java.lang.RuntimeException: applicationContext is null. You must call Parse.initialize(context, applicationId, clientKey) before using the Parse library. at android.app.ActivityThread.handleReceiver(ActivityThread.java:2580) at android.app.ActivityThread.access$1700(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397) at android.os.Handler.dispatchMessage(Handler.java:110) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:5292) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:824) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.RuntimeException: applicationContext is null. You must call Parse.initialize(context, applicationId, clientKey) before using the Parse library. at com.parse.Parse.checkContext(Parse.java:606) at com.parse.Parse.getApplicationContext(Parse.java:214) at com.parse.ManifestInfo.getContext(ManifestInfo.java:322) at com.parse.ManifestInfo.getPackageManager(ManifestInfo.java:330) at com.parse.ManifestInfo.getPackageInfo(ManifestInfo.java:356) at com.parse.ManifestInfo.deviceSupportsGcm(ManifestInfo.java:441) at com.parse.ManifestInfo.getPushType(ManifestInfo.java:210) at com.parse.PushService.startServiceIfRequired(PushService.java:168) at com.parse.ParseBroadcastReceiver.onReceive(ParseBroadcastReceiver.java:19) at android.app.ActivityThread.handleReceiver(ActivityThread.java:2573) ... 10 more
Y aquí está mi código de inicialización:
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_home_screen); Parse.initialize(this, "hGG5RdgNVdI7eCeZynV32lWYXywQRHkpp5zLdY7Q", "TwmNbpBYEt4u3euE3lzNIgwyroSl8RPGF2dJFsPv"); ParseInstallation.getCurrentInstallation().saveInBackground();
¿Puede alguien ver lo que está causando este error, y cómo solucionarlo?
Abajo está mi código del receptor:
public static class Receiver extends ParsePushBroadcastReceiver { private String notificationText; private Boolean notificationreceived = false; public Receiver(){ } private static final String TAG = "MyNotificationsReceiver"; @Override public void onPushOpen(Context context, Intent intent) { Log.e("Push", "Clicked"); Intent i = new Intent(context, HomeScreen.class); notificationreceived = true; i.putExtra("alert",notificationText); i.putExtra("alertreceived", notificationreceived); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(i); Scb998.scb988b=true; try { JSONObject json = new JSONObject(intent.getExtras().getString("com.parse.Data")); Scb998.msg = json.getString("alert"); } catch (JSONException e) { Log.d(TAG, "JSONException: " + e.getMessage()); } } }
- Lados negativos de C2dM
- FCM (Firebase Cloud Messaging) cómo enviar a todos los teléfonos?
- Excepción al abrir Parse push notification
- Bandera de notificaciones push de Android que no aparece en algunos dispositivos
- GCM enviar imagen en lugar de mensaje
- Instalar jar con dependencias para el repositorio maven (Android gcm-server push library)
- App apache cordova se bloquea después de recibir la notificación push parse.com
- Notificación de empuje cuando se está ejecutando la aplicación
Mover la inicialización de Parse
a su clase de App
(extendida desde la Application
)
public class App extends Application { @Override public void onCreate() { super.onCreate(); Parse.initialize(this, "hGG5RdgNVdI7eCeZynV32lWYXywQRHkpp5zLdY7Q", "TwmNbpBYEt4u3euE3lzNIgwyroSl8RPGF2dJFsPv"); ParseInstallation.getCurrentInstallation().saveInBackground(); } }
Y, por supuesto, refiérase a su AndroidManifest.xml
<application android:name=".app.App" .... </application>
La razón del accidente es la siguiente. Cuando su aplicación está en segundo plano, puede ser destruida por el sistema. De la guía de Google
Un proceso que contiene una actividad que no está visible para el usuario (se ha llamado el método onStop () de la actividad). Estos procesos no tienen un impacto directo en la experiencia del usuario, y el sistema puede matarlos en cualquier momento para recuperar la memoria de un proceso de primer plano, visible o de servicio. Por lo general, hay muchos procesos de fondo en ejecución, por lo que se mantienen en una lista LRU (menos utilizado recientemente) para asegurarse de que el proceso con la actividad que fue vista más recientemente por el usuario es el último a ser matado. Si una actividad implementa correctamente sus métodos de ciclo de vida y guarda su estado actual, eliminar su proceso no tendrá un efecto visible en la experiencia del usuario, ya que cuando el usuario vuelve a la actividad, la actividad restaura todo su estado visible. Consulte el documento de actividades para obtener información sobre cómo guardar y restaurar el estado.
Cuando la aplicación recibe una notificación push, no se inicializará el análisis porque lo inicializará en el método onCreate
actividad, que no se llamará.
- ¿Cómo puedo volver a utilizar este botón de Android?
- Error cómico en la declaración de forma xml de Android