Null Pointer Ausnahme starten IntentService

Ich habe einen IntentService, den ich anfange zu starten. Wenn ich das mache, spuckt es das aus:

java.lang.RuntimeException: Unable to start service com.pec.testapp.service.NewsService@406bd940 with Intent { cmp=com.pec.testapp/.service.NewsService }: java.lang.NullPointerException at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2173) ... (omitted for brevity) Caused by: java.lang.NullPointerException at android.app.IntentService.onStart(IntentService.java:110) at android.app.IntentService.onStartCommand(IntentService.java:118) at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2160) ... 10 more 

Ich habe das gegoogelt und sah so viele ähnliche StackOverflow Fragen wie ich finden konnte. Allerdings gibt es ein paar subtile Unterschiede, die ich nicht um meinen Kopf umwickeln kann. Zunächst einmal gibt es keine meiner Klassen, die in der Ausnahme referenziert werden. Zweitens wurden ähnliche Fragen durch die Änderung des Kontextes oder der doppelten Überprüfung behoben, um sicherzustellen, dass es nicht null ist.

  • Wie implementiere ich Android App Links mit Wildcard Domains?
  • CheckBox wird nicht in CheckedTextView angezeigt
  • Android Web-View Fehler I / Chrom: "Uncaught ReferenceError:
  • EditText - Text beim Tippen ändern
  • Zeichnen von lichtdurchlässigen Bitmaps mit Canvas (Android)
  • Wie man VLC Media Player auf meine Android App einbindet
  • Ich habe Code zu überprüfen, das ist nicht der Fall:

     public Context context; @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); context = getApplicationContext(); if(context == null) Log.d("PECAPP","Context is null"); setContentView(R.layout.news_layout); ...Omit button code... button.setOnClickListener(new OnClickListener(){ @Override public void onClick(View view){ Intent i = new Intent(context, NewsService.class); // also tried NewsActivity.this if( i != null) // I know that this should never happen but I'm at a loss... startService(i); // I've also tried this with context.startService(i) } }); } 

    Mein IntentService ist nach dem Google Docs modelliert. Einfach ein Konstruktor mit einer onHandleIntent Methode.

     public NewsService() { super("NewsService"); } ...omit onCreate() and onDestroy() since they haven't been implemented yet... @Override protected void onHandleIntent(Intent intent) throws IllegalArgumentException { Log.d("PECAPP","Got here..."); // I never actually got here... if(intent == null) Log.d("PECAPP","INTENT IS NULL"); ...omit rest of code... } 

    Also meine Frage ist: Woher kommt diese Ausnahme von und gibt es etwas, das ich anders machen kann, um es zu vermeiden? Meine google-fu hat mich in der Vergangenheit nicht versagt, so hoffentlich ist dies nicht eine dieser schmerzlich offensichtlichen Antworten. Auch wenn es Dinge gibt, die besser gemacht werden können oder einfach nur hässlich sind, wird konstruktive Kritik immer geschätzt.

    Ich habe die ganze Auszeichnung, NewsActivity und NewsService auf Pastebin, falls ich etwas herausgelassen habe. Http://pastebin.com/mR9Sykrq

  • Retrofit: mehrere Abfrageparameter im @GET-Befehl?
  • Java.lang.ClassCastException: android.view.ViewGroup $ LayoutParams ohne LayoutParams Nutzung
  • Wie man Klingelton / Alarmton in Android spielt
  • Android In App Billing: Sicherung der Anwendung öffentlichen Schlüssel
  • Kamera: setDisplayOrientation Funktion funktioniert nicht für Samsung Galaxy ACE mit Android 2.3.6
  • NoSQL für mobile Apps?
  • 2 Solutions collect form web for “Null Pointer Ausnahme starten IntentService”

    Wenn du in deinem IntentService onCreate() überschreiben onCreate() , dann super.onCreate() dir sicher, dass du super.onCreate() . Das scheint sehr wahrscheinlich dein Problem zu sein.

    Nicht sicher, ob es das gleiche Problem ist, aber ich war mit einem intentService auch, und ich hatte Probleme mit der Verwendung

     context = getApplicationContext(); 

    Oder context = getBaseContext (); Ich war nicht überbewertet auf Create so die vorherige Lösung kann die Lösung für Sie sein, ich arbeitete innen "onHandleIntent"

    Ich würde eine sofortige Ausnahme mit dem ersten bekommen, und eine Ausnahme später, als ich versuchte, die 2. zu verwenden.

    Ich habe erkannt, dass der Intentservice selbst eine Unterklasse von Kontext ist, also habe ich "dieses" ersetzt, wo immer ich eine Instanz von "Kontext" brauchte.

    Das hat mein Problem gelöst.

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