Service의 onStart에서 java.lang.NullPointerException 가 발생 할 경우

아래와 같이 Service class의 onStart에서 오류가 날 경우


java.lang.RuntimeException: Unable to start service 'packagename.class' with null: java.lang.NullPointerException
   at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2390)
   at android.app.ActivityThread.access$1900(ActivityThread.java:128)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1224)
   at android.os.Handler.dispatchMessage(Handler.java:99)
   at android.os.Looper.loop(Looper.java:137)
   at android.app.ActivityThread.main(ActivityThread.java:4536)
   at java.lang.reflect.Method.invokeNative(Native Method)
   at java.lang.reflect.Method.invoke(Method.java:511)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)
   at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
   at 'packagename service class'.onStart('service class'.java:26)
   at android.app.Service.onStartCommand(Service.java:438)
   at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2373)
   ... 10 more

대처방안 : onStart를 onStartCommand로 변경 해준다.

안드로이드 2.0부터 Service API가 바뀌어서 Service.onStart()는 사용 하지 않는다.
(하위 버전 호환을 위해서 남겨 놓았을 뿐이다.)

Service.onStart() 대신 Service.onStartCommand()를 사용한다.