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_產生,而不是編輯的意圖是空的。

我該如何解決這個問題?

編輯:這是該服務被怎麼叫一個例子:

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-onstartcommand和這 – Vyacheslav