1. ホーム
  2. android

[解決済み] java.lang.InstantiationException: クラスには引数0のコンストラクタがありません。

2022-02-28 17:54:28

質問

を使おうとしています。 BroadcastReceiver として インナークラス を使用してネットワークの状態を追跡していますが、タイトルにあるような例外が発生しました。 この問題を解決するには、どうしたらよいでしょうか?

public class NetworkChangeReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        final ConnectivityManager connMgr = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);

        final android.net.NetworkInfo wifi = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
        final android.net.NetworkInfo mobile = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

        if (wifi.isAvailable() || mobile.isAvailable()) {
            setupData();
            Log.d("Netowk Available ", "Flag No 1");
        }
    }
}

解決方法は?

あなたの

<ブロッククオート

内側のブロードキャスト受信機は静的である必要があります(マニフェストで登録されます)。

または

非静的放送受信機は、Parent クラスの内部で登録・解除を行う必要があります。

を使用します。

Inner broadcast reciverをクラス内に登録せずに使用していました。静的にしてマニフェストで登録するか、非静的にして親クラス内で登録と解除を行うか、どちらかです。