Java.lang.InstantiationException: class hat keinen Null-Argument-Konstruktor

Ich versuche, einen BroadcastReceiver als eine innere Klasse zu verwenden, um den Netzwerkzustand zu verfolgen, aber ich habe die Ausnahme im Titel. Was soll ich tun, um dieses Problem zu beheben?

public class NetworkChangeReceiver extends BroadcastReceiver { public NetworkChangeReceiver() { } @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"); } } } 

  • Unity-Projekt als Abhängigkeit in Gradle
  • Android-Aktivität neu erstellen
  • ViewGroup {TextView, ...} .getMeasuredHeight gibt falschen Wert ist kleiner als reale Höhe
  • ActivityNotFoundException bei der Verwendung von Facebook Plugin mit Unity
  • Wie man das Vektor in der Layer-Liste ohne Skalierung zeichnet
  • Wie effektiv implementiere ich das MVVM-Design-Muster für meine Android-App, die auch das Schreiben von Testfällen erleichtert?
  • NDK-Build-Fehler
  • Umschalten von Fragmenten oder Aktivitäten (dh Layouts) auf Orientierungsänderung
  • Wie läuft man BASH Skript in meinem Android?
  • Warum bekomme ich diese Zeile in grüner Farbe in Timeline: Activity_idle id: android.os.BinderProxy@41d2b6d8 Zeit: 1933928?
  • ImageView füllt die Oberseite der übergeordneten Oberseite, behält aber das Seitenverhältnis bei
  • Android: wie man unendlich scrollview mit endlosem scrollen lässt
  • 3 Solutions collect form web for “Java.lang.InstantiationException: class hat keinen Null-Argument-Konstruktor”

    Ihre

    Innerer Broadcast-Empfänger muss statisch sein (durch Manifest registriert zu werden)

    ODER

    Der nicht statische Rundfunkempfänger muss in der übergeordneten Klasse registriert und nicht registriert sein

    dafür.

    Ich habe einen Inneren Rundfunkempfänger benutzt, ohne ihn innerhalb der Klasse zu registrieren. Entweder machen Sie es statisch und registrieren Sie sich in Manifest, oder machen Sie es nicht statisch und registrieren und unregistrieren in der übergeordneten Klasse.

    Den leeren Konstruktor entfernen

     public NetworkChangeReceiver() { } 

    BEARBEITEN:

    Von diesem Thread habe ich gelernt, dass eine (nicht-statische) innere Klasse nicht von Android über die AndroidManifest.xml instanziiert werden kann. Sie müssen es dynamisch registrieren, wie im obigen Link gezeigt.

    E ~~ Ich treffe nur dieses Problem, und ich refactor die Klasse NetworkChangeReceiver an einen anderen Ort

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.