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"); } } } 

  • Machen Sie Android-Layout und verschachtelte Layouts innerhalb zoomable
  • Statische Variable null bei der Rückkehr zur App
  • Der Host konnte nicht geladen werden. "URL hier einfügen"> Keine Adresse mit Hostname verknüpft
  • So geben Sie das Verzeichnis für NDK_MODULE_PATH an
  • Wie kann ich die Sprache meiner Bewerbung ändern?
  • Wie bekomme ich einen Google Maps API v2 Release Key
  • Integriere meine App mit Kontakt
  • Erweitern Sie ListView-Element mit Animation
  • Android EditText Gmail gerne Feld
  • Hinzufügen eines Farbfilters zu einem Drawable ändert alle Schaltflächen mit demselben Drawable
  • Android Anfänger - Bild bei DragEvent platzieren
  • Entfernen Sie den schwarzen Hintergrund im benutzerdefinierten Dialog
  • 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.