Başlamaya çalıştığım bir IntentService var. Ben ne zaman, dışarı tükürür bu: Ben bu googled ve bulabildiğim kadar birçok benzer StackOverflow soruları baktımBoş İşaretçi istisnası başlayan IntentService
java.lang.RuntimeException: Unable to start service [email protected] 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
. Bununla birlikte, kafamı saramayacağım birkaç ince fark var. Her şeyden önce istisnada referans verilen sınıflarım yok. İkinci olarak, benzer sorular, bağlam değiştirilerek veya null olmadığından emin olmak için iki kez kontrol edilerek düzeltildi.
ben kod bu durum böyle değil kontrol etmek zorunda: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)
}
});
}
Benim IntentService google docs sonra modellenmiştir. Sadece onHandleIntent yöntemiyle bir kurucu. Nerede bu istisna geliyor ve bunu önlemek için farklı yapabileceği bir şey vardır:
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...
}
Benim soru şudur? Benim google-fu geçmişte beni başarısızlığa uğratmadı, bu yüzden umarım ki bu acımasız açık cevaplardan biri değildir. Ayrıca, daha iyi yapılabilir ya da sadece çirkin olan şeyler varsa, yapıcı eleştiri her zaman takdir edilir.
Bir şeyleri bıraktığımda, bir istisna olan NewsActivity ve NewsService'ı pastebin üzerine koydum. http://pastebin.com/mR9Sykrq
Genellikle bunu bir Etkinlik içinde unutursanız, kilitlendiğinde size hatırlatacaktır, ancak görünüşte burada değil. –
@Jarett Android'in birçok harikalarından sadece bir tanesi =] –
Teşekkürler, ve benim için çalışıyor. – mxi1