java - NullPointerException BillingManager.java 来自应用内计费
问题描述
我在我的项目中添加了一个新的计费库。
compile 'com.android.billingclient:billing:1.0'
我从这里https://github.com/googlesamples/android-play-billing/blob/master/TrivialDrive_v2/shared-module/src/main/java/com/example/billingmodule/向我的项目添加了一个 BillingManager.java 类计费/BillingManager.java
我有很多例外,详细信息来自 Crashlytics:
Fatal Exception: java.lang.RuntimeException
Unable to resume activity {com.domain.app/com.domain.app.MainActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'int java.util.List.size()' on a null object reference
Caused by java.lang.NullPointerException
Attempt to invoke interface method 'int java.util.List.size()' on a null object reference
com.domain.app.BillingManager$4.run
com.domain.app.BillingManager.executeServiceRequest (Unknown Source)
com.domain.app.BillingManager.executeServiceRequest (Unknown Source)
com.domain.app.MainActivity.onResume (Unknown Source)
文本模式:
Fatal Exception: java.lang.RuntimeException: Unable to resume activity {com.domain.app/com.domain.app.MainActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'int java.util.List.size()' on a null object reference
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3647)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3687)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1629)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:156)
at android.app.ActivityThread.main(ActivityThread.java:6623)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832)
MainActivity 的 OnResume() 包含以下代码:
if (mBillingManager != null && mBillingManager.getBillingClientResponseCode() == BillingClient.BillingResponse.OK) {
mBillingManager.queryPurchases();
}
我该如何解决?大约 1% 的 DAU 存在这样的问题。
解决方案
推荐阅读
- flask - validate_on_submit (flask-wtf) 不工作
- c++ - 如何在 ax_boost_base 中使用 HAVE_BOOST
- azure-storage - 如何使用 ADLS gen 2 容器的访问策略生成 SAS 令牌
- reactjs - 如何随机化 qraphql 查询结果?
- android -
- 内部元素必须是资源引用或为空
- reactjs - ReactJS - 如何使用 React Router 创建具有单路径的多步组件/表单
- bash - 按顺序合并同名多部分pdf文件
- javascript - 如何在 React 中更改状态
- java - 我可以在倒计时结束时应用通知吗?
- sensors - 使用 esp8266 从 max30100 传感器发送数据到 thingspeak