oreo - android pie
La clase de aplicaciĆ³n global personalizada se rompe con "android.app.Application no se puede convertir a" (2)
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 preservar 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
Revisé el código cinco veces y no puedo encontrar el error en ninguna parte. ¿Alguien puede 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 para esto es que no definió 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 Android o emuladores anteriores . Usted definió una aplicación en el manifiesto:
<application
android:name=".MyApp"...
</application>
pero todavía tienes este problema?
Intenta deshabilitar la ejecución instantánea:
- Deshabilitar una ejecución instantánea
- Limpiar y reconstruir el proyecto
- Retire la aplicación del dispositivo e instálela de nuevo sin ejecución instantánea