NullPointerException in IabHelper.queryPurchases
2022-09-03 05:35:52
今天,我发现了我的Android应用程序的应用程序崩溃报告,涉及以下堆栈跟踪:
java.lang.NullPointerException: Attempt to invoke interface method 'android.os.Bundle com.android.vending.billing.IInAppBillingService.getPurchases(int, java.lang.String, java.lang.String, java.lang.String)' on a null object reference
at com.myapp.utils.IabHelper.queryPurchases(IabHelper.java:878)
at com.myapp.utils.IabHelper.queryInventory(IabHelper.java:572)
at com.myapp.utils.IabHelper.queryInventory(IabHelper.java:545)
at com.myapp.utils.IabHelper$2.run(IabHelper.java:645)
at java.lang.Thread.run(Thread.java:818)
(由于自定义重新格式化,行号从原始行号更改为原始行号- 或看起来像是原始行号的行号)
通常,人们会修改自己的代码以检查未分配的类成员。问题在于,这段代码是从 Android SDK 复制粘贴过来的,因为这是 Android SDK 提供的一个类,作为实现应用内计费 v3 的良好起点。IabHelper
有罪线是第二条
logDebug("Calling getPurchases with continuation token: " + continueToken);
Bundle ownedItems = mService.getPurchases(3, mContext.getPackageName(), itemType, continueToken);
调用该方法时,服务似乎未连接。此错误发生在 Nexus 5 设备上(根据开发人员控制台)
- 这是Android 5的已知问题吗?
- 是否有最新版本的 IAB 帮助程序?
- 除了手动编辑代码以以某种方式处理NPE之外,我还能做些什么?