java.lang.InstantiationException: la class non ha nessun constructor di argomento

Sto cercando di utilizzare un BroadcastReceiver come class interna per tenere traccia dello stato della networking, ma ho ottenuto l'exception nel titolo. Cosa devo fare per risolvere questo problema?

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

  • interpretare cpuinfo dumpsys
  • Fotocamera Android bloccata dopo la chiusura della forza
  • come includere le librerie condivise preinstallate in apk con eclipse
  • L'esecuzione di un'icona di notifica viene visualizzata sul plugin di avvio / auricolare
  • Come impostare la mia icona per i marcatori nel cluster in Google Maps
  • Come terminare l'attività da AsyncTask Android
  • Sviluppo Android: Migliora Scrolling di EditText?
  • ProgressBar in asynctask non è visualizzata durante il caricamento
  • zxing onActivityResult non viene chiamato in Frammento solo in Attività
  • Distriggerszione del cassetto di navigazione, selezionando il button home / up-indicator in frammenti
  • Come aggiungere le bolle a textview android?
  • La tastiera soft entra nella maniglia evento chiave
  • 3 Solutions collect form web for “java.lang.InstantiationException: la class non ha nessun constructor di argomento”

    Il tuo

    il ricevitore interno di trasmissione deve essere statico (per essere registrato tramite Manifest)

    O

    Ricevitore di trasmissione non statico deve essere registrato e non registrato all'interno della class Parent

    per questo.

    Stavo usando un trasmettitore di trasmissione Inner, senza registrarlo all'interno della class. O fai statico e registrati in Manifesto, o Fai non statico e registrati e annullati nella class padre.

    Rimuovere il constructor vuoto

     public NetworkChangeReceiver() { } 

    EDIT:

    Da questo thread ho imparato che una class interna (non statica) non può essere istanziata da Android tramite l'AndroidManifest.xml. È necessario registrarla dynamicmente, come mostrato nel collegamento precedente.

    e ~ Sono appena soddisfatto di questo problema e rifatto la class NetworkChangeReceiver in un altro luogo

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.