我有一个自定义全局类,看起来像这样
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
我已经检查了五次代码,我无法在任何地方找到错误。谁能告诉我错误在哪里?!
由于
答案 0 :(得分:437)
错误指出getApplication
返回的对象类型为android.app.Application
。可能的原因是您无法在清单中定义应用程序。确保您的清单包含以下内容:
<application android:name=".MyApp"...
</application>
答案 1 :(得分:11)
较旧的Android设备或模拟器的另一种解决方案。 您在清单中定义了一个应用程序:
<application
android:name=".MyApp"...
</application>
但你还有这个问题吗?
尝试禁用即时运行: