Пользовательский глобальный класс приложения разбивается на "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>

но у вас все еще есть эта проблема?

Попробуйте отключить мгновенный запуск:

  • Отключить мгновенный запуск
  • Очистить и перестроить проект
  • Удалите приложение с устройства и установите его снова без немедленного запуска