며칠 전 안드로이드의 BillingClient 버전을 2.0.3에서 3.0.3으로 올렸는데 아래와 같은 오류가 발생했다.
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Intent.getStringExtra(java.lang.String)' on a null object reference
at com.android.billingclient.api.BillingClientImpl.launchBillingFlow(BillingClientImpl.java:48)
at com.myapp.MainActivity$launchPurchaseFlow$1.onSkuDetailsResponse(MainActivity.java:148)
at com.android.billingclient.api.zzac.run(zzac.java:4)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:246)
at android.app.ActivityThread.main(ActivityThread.java:8506)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)
외부에 노출된 코드엔 intent도 없고 가이드 문서들을 뒤져도 딱히 덜 넘긴게 없는데 확률적으로 발생하는 것도 아니고 계속 발생했다. 어지저찌하다가 launchBillingFlow를 호출하는 activity에 빈 Intent를 넣어 주는 것으로 땜빵했다.
if (activity.intent == null) {
activity.intent = Intnet()
}
playStoreBillingClient.launchBillingFlow(activity, purchaseParams)
코드를 볼 수 없으니 왜 getString을 호출하는지 모르겠다.
어쨋든 안죽고 결제도 되니 비긴걸로 하자...
'개발 > 안드로이드' 카테고리의 다른 글
java.net.ProtocolException: unexpected end of stream (0) | 2021.05.07 |
---|---|
코틀린 isEmpty와 isBlank 차이 (0) | 2021.05.02 |
코틀린에서 const val 과 val 차이 (0) | 2021.02.21 |
앱 설치/업데이트 시간 가져오기 (0) | 2021.02.03 |
Intent로 메일 보내기 (0) | 2020.12.03 |
댓글