1. ホーム
  2. android

[解決済み] カスタムグローバルアプリケーションクラスが "android.app.Application cannot be cast to" でブレークする。

2022-05-03 06:17:41

質問

私は、以下のようなカスタムグローバルクラスを持っています。

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回ほどコードをチェックしましたが、どこにもエラーは見当たりません。どなたかエラーの場所を教えていただけませんか?

ありがとうございます

解決方法は?

で返されたオブジェクトの型が、このエラーの原因です。 getApplicationandroid.app.Application . この原因として考えられるのは、マニフェストでアプリケーションの定義に失敗していることです。マニフェストに以下の行が含まれていることを確認してください。

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