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:
- Desactivar una ejecución instantánea
- Limpiar y reconstruir el proyecto
- Quitar la aplicación del dispositivo e instalarla de nuevo sin ejecución instantánea