次のようなカスタムグローバルクラスがあります
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
コードを 5 回チェックしましたが、どこにもエラーが見つかりません。エラーがどこにあるか教えていただけますか?
ありがとう
ベストアンサー1
エラーには、 によって返されるオブジェクトのタイプがgetApplication
であると記載さandroid.app.Application
れています。この原因として考えられるのは、マニフェストでアプリケーションを定義しなかったことです。マニフェストに次の行が含まれていることを確認してください:
<application android:name=".MyApp"...
</application>