android - 自定义全局应用程序类中断与 "android.app.Application cannot be cast to"

标签 android

我有一个看起来像这样的自定义全局类

import android.app.Application;

public class MyApp extends Application {

    public String MainAct;

    public String getMainAct() {
        return MainAct;
    }

    public void setMainAct(String mainAct) {
        MainAct = mainAct;
    }
}

我想通过 onCreate 方法中的另一个 Activity 在此类中保留一个字符串。

    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

我已经检查了五次代码,但在任何地方都找不到错误。谁能告诉我错误在哪里?!

谢谢

最佳答案

错误表明getApplication返回的对象类型是android.app.Application。造成这种情况的一个可能原因是您未能在 list 中定义应用程序。确保您的 list 包含以下内容:

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

关于android - 自定义全局应用程序类中断与 "android.app.Application cannot be cast to",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10607392/

相关文章:

Android - AutoCompleteTextView onClickListener 在第二次点击后工作

Android Force GPU Rendering 如何启用和禁用?

Android 设置自定义动画

Android:半透明覆盖?

java - 无法更改数组的大小

android - 在Android API 29和API 30中创建到/sdcard/Download文件夹下的文件夹

android - 文本不会使用 android.support.v7.widget.GridLayout 自动换行

java - Android - 尽管布局宽度设置为匹配父级,但仍包裹内容?

android - 使用 Roboguice 注入(inject)没有默认构造函数的依赖项

java - 程序运行没有错误,但按钮打不开