마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

인앱결제 오류관련 질문

0 추천

java.lang.NullPointerException

위치: com.android.vending.billing.BillingService.handleCommand

java.lang.RuntimeException: Unable to start service com.android.vending.billing.BillingService@43179738 with null: java.lang.NullPointerException
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2782)
at android.app.ActivityThread.access$2000(ActivityThread.java:152)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1385)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5329)
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:1102)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.android.vending.billing.BillingService.handleCommand(BillingService.java:429)
at com.android.vending.billing.BillingService.onStart(BillingService.java:419)
at android.app.Service.onStartCommand(Service.java:450)
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2765)
... 10 more

이런 오류가나는데요

앱을 강제종료시키거나

(예) system.exit(0); 혹은 킬프로세서 같은걸 사용하거나 홈키 길게눌러서 종료시킬경우

이런 오류가 뜹니다.

익명사용자 님이 2013년 11월 7일 질문

1개의 답변

0 추천

자답입니다

원인은 앱비정상 종료시 BillingService에 HandleCommand 메소드가 호출되는데 이때 접근하는 클래스들이 NULL포인터인데 여기에 접근해서 오류가 뜨게 되더군요

그래서 BillingService에 HandleCommand 메소드를 

try{

//원래 들어있던 코드들,,,

}catch(NullPointerException e) {

    this.unbind();
 }
 
로 묶어주면 앱 비정상 종료시 이 메소드가 호출될때 예외처리가 되서 오류메세지가 안뜨게 됩니다.
익명사용자 님이 2013년 11월 8일 답변
...