0

Я использую AndroidAnnotations, и у меня есть несколько IntentServices. Иногда я получаю эту ошибку (происходит на все службы, а не только один ниже):Исключительное исключение указателя внутри созданного IntentService

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Intent.getAction()' on a null object reference 
     at xxxx.DataLoaderService_.onHandleIntent(DataLoaderService_.java:51) 
     at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:135) 
     at android.os.HandlerThread.run(HandlerThread.java:61) 

Но я не могу проверить, если Намерение является недействительным, поскольку DataLoaderService_ генерируется и не редактируется.

Как я могу решить эту проблему?

EDIT: Это пример того, как вызывается эта служба:

DataLoaderService_.intent(MyApplication.getContext()).loadMyData().start(); 

И это услуга (генерируется):

@Override 
    public void onHandleIntent(Intent intent) { 
     DataLoaderService_.super.onHandleIntent(intent); 
     String action = intent.getAction(); 
     if (ACTION_LOAD_MY_DATA.equals(action)) { 
      super.loadMyData(); 
      return ; 
     } 
} 

     public static class IntentBuilder_ 
      extends ServiceIntentBuilder<DataLoaderService_.IntentBuilder_> 
     { 
     public DataLoaderService_.IntentBuilder_ loadMyData() { 
        action(ACTION_LOAD_MY_DATA); 
        return this; 
       } 
    } 
+0

Пожалуйста, разместите код, который вызывает этот IntentService. – Egor

+0

Написал код – fanboy555

+0

Возможный дубликат [Что такое исключение NullPointerException и как его исправить?] (Http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i -fix-it) – Ironman

ответ

-1

Ваше намерение имеет нулевое значение. используйте этот код вместо:

if (intent != null) { 
String action = intent.getAction(); 
     if (ACTION_LOAD_MY_DATA.equals(action)) { 
      super.loadMyData(); 
      return ; 
     } 
    } 
+0

Как я могу сделать это внутри сгенерированного класса, который я не могу изменить? Это то, о чем я прошу. – fanboy555

+0

Я не знаю вашего кода. поэтому прочтите следующее: http://stackoverflow.com/questions/8421430/reasons-that-the-passed-intent-would-be-null-in-startcommand и это – Vyacheslav

Смежные вопросы