カスタムグローバルアプリケーションクラスが「android.app.Application にキャストできません」で中断される 質問する

カスタムグローバルアプリケーションクラスが「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

コードを 5 回チェックしましたが、どこにもエラーが見つかりません。エラーがどこにあるか教えていただけますか?

ありがとう

ベストアンサー1

エラーには、 によって返されるオブジェクトのタイプがgetApplicationであると記載さandroid.app.Applicationれています。この原因として考えられるのは、マニフェストでアプリケーションを定義しなかったことです。マニフェストに次の行が含まれていることを確認してください:

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

おすすめ記事