Исключение Null Pointer начиная с IntentService

У меня есть IntentService, который я пытаюсь начать. Когда я это сделаю, он выплевывает это:

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 

Я искал это и посмотрел на столько похожих вопросов StackOverflow, сколько мог найти. Тем не менее, есть несколько тонких различий, которые я не могу оборачивать. Прежде всего, в моем исключении нет ни одного из моих классов. Во-вторых, аналогичные вопросы были исправлены путем изменения контекста или двойной проверки, чтобы убедиться, что он не является нулевым.

У меня есть код, чтобы проверить, что это не так:

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

Мой IntentService моделируется после документов google. Просто конструктор с методом onHandleIntent.

 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... } 

Поэтому мой вопрос таков: откуда это исключение, и есть ли что-то, что я могу сделать, чтобы избежать этого? Мой google-fu не подвел меня в прошлом, поэтому, надеюсь, это не один из этих мучительно очевидных ответов. Кроме того, если есть вещи, которые можно сделать лучше или просто уродливые, всегда ценится конструктивная критика.

Я положил полное исключение, NewsActivity и NewsService на pastebin на случай, если я что-то оставил. http://pastebin.com/mR9Sykrq

Если вы собираетесь переопределить onCreate() в своем IntentService , тогда убедитесь, что вы вызываете super.onCreate() в нем. Скорее всего, это ваша проблема.

Не уверен, что это одна и та же проблема, но я тоже использовал программу намерения, и у меня возникли проблемы с использованием

 context = getApplicationContext(); 

Или context = getBaseContext (); Я не переопределял onCreate, поэтому предыдущее решение может быть для вас решением, я работал внутри «onHandleIntent»,

Я бы получил немедленное исключение из первого, а затем – исключение, когда попытался использовать второй.

Я понял, что Intentservice сам является подклассом Context, поэтому я заменил «это» везде, где мне нужен экземпляр «Context».

Это решило мою проблему.

Intereting Posts
Как открыть список доступных звуков уведомлений на Android Чем отличается Log.wtf () от Log.e ()? В чем разница между MD5withRSA & SHA1withRSA? Компиляция библиотек, требующих stl для android Создание проекта в Android 5.0 Lollipop с использованием Eclipse Juno Что именно делает метод Activity.finish ()? Что происходит, когда разрешение отключено с новой функцией ОС 4.3? Качество пользовательской камеры Android Не удалось получить URL-адрес https://dl-ssl.google.com/android/repository/addons_list-1.xml, причина: подключение к https://dl-ssl.google.com отклонено Один сервер, отправляющий push-уведомления на устройства Android и iOS Android: вертикальное выравнивание для нескольких строк EditText (область текста) Отправить текстовый тег для Instagram с помощью моего приложения для Android Последовательная связь с Windows Phone 8 GCM. Какое специальное сообщение от GCM выглядит, когда достигнут предел 100 сообщений? Проблема с использованием ViewPager и PageTransformer с Android API <11