La clase de aplicación global personalizada se rompe con "android.app.Application no se puede convertir en"

Tengo una clase global personalizada que se parece a esto

import android.app.Application; public class MyApp extends Application { public String MainAct; public String getMainAct() { return MainAct; } public void setMainAct(String mainAct) { MainAct = mainAct; } } 

Quiero conservar una cadena en esta clase a través de otra Activity en su método onCreate .

  String local = "myLocalVariable"; ((MyApp) getApplication()).setMainAct(local); //breaks here!!! String name = ((MyApp) getApplication()).getMainAct(); 

Se rompe en la línea marcada con error: Caused by: java.lang.ClassCastException: android.app.Application cannot be cast to com.xxx.yyy.global.MyApp

He comprobado el código por cinco veces y no puedo encontrar el error en ninguna parte. ¿Puede alguien decirme dónde está el error?

Gracias

El error indica que el tipo de objeto devuelto por getApplication es android.app.Application . Una posible causa de esto es que no se pudo definir la aplicación en el manifiesto. Asegúrese de que su manifiesto incluya algo en las líneas de:

 <application android:name=".MyApp"... </application> 

Otra solución para dispositivos o emuladores Android más antiguos . Ha definido una aplicación en el manifiesto:

  <application android:name=".MyApp"... </application> 

Pero todavía tiene este problema?

Intente desactivar la ejecución instantánea:

  1. Desactivar una ejecución instantánea
  2. Limpiar y reconstruir el proyecto
  3. Quitar la aplicación del dispositivo e instalarla de nuevo sin ejecución instantánea
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.