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

Я проверил код пять раз и нигде не могу найти ошибку. Может кто-нибудь сказать мне, где ошибка?!

Спасибо

2 ответа

Решение

Ошибка гласит, что тип объекта, возвращаемого getApplication является android.app.Application, Возможной причиной этого является то, что вам не удалось определить приложение в манифесте. Убедитесь, что ваш манифест включает в себя что-то вроде:

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

Еще одно решение для старых Android-устройств или эмуляторов. Вы определили приложение в манифесте:

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

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

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

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