Пользовательский глобальный класс приложения разбивается на "android.app.Application не может быть отброшен в"
У меня есть собственный глобальный класс, который выглядит как
import android.app.Application;
public class MyApp extends Application {
public String MainAct;
public String getMainAct() {
return MainAct;
}
public void setMainAct(String mainAct) {
MainAct = mainAct;
}
}
Я хочу сохранить строку в этом классе через другой Activity
в своем методе onCreate
.
String local = "myLocalVariable";
((MyApp) getApplication()).setMainAct(local); //breaks here!!!
String name = ((MyApp) getApplication()).getMainAct();
Он разбивается на отмеченную строку с ошибкой: Caused by: java.lang.ClassCastException: android.app.Application cannot be cast to com.xxx.yyy.global.MyApp
Я проверил код пять раз, и я не могу найти ошибку где угодно. Может ли кто-нибудь сказать мне, где ошибка?!
Спасибо
Ответы
Ответ 1
Ошибка указывает, что тип объекта, возвращаемого getApplication
, равен android.app.Application
. Возможной причиной этого является то, что вы не смогли определить приложение в манифесте. Убедитесь, что ваш манифест содержит что-то в следующих строках:
<application android:name=".MyApp"...
</application>
Ответ 2
Другое решение для старых Android-устройств или эмуляторов.
Вы определили приложение в манифесте:
<application
android:name=".MyApp"...
</application>
но у вас все еще есть эта проблема?
Попробуйте отключить мгновенный запуск:
- Отключить мгновенный запуск
- Очистить и перестроить проект
- Удалите приложение с устройства и установите его снова без немедленного запуска