java – NullPointerException在IabHelper.queryPurchases中
发布时间:2020-05-24 15:05:37 所属栏目:Java 来源:互联网
导读:今天我发现了一个涉及以下堆栈跟踪的 Android应用程序的应用程序崩溃报告: java.lang.NullPointerException: Attempt to invoke interface method android.os.Bundle com.android.vending.billing.IInAppBillingService.getPurchases(int, java.la
|
今天我发现了一个涉及以下堆栈跟踪的 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)' 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) (行号是从原来的 – 或者什么looks like to be the original,因为自定义重新格式化) 通常,可以修改自己的代码来检查未分配的类成员.问题是这个代码是从Android SDK中复制和粘贴的,因为IabHelper是一个类,Android SDK provides是实现应用内结算v3的好起点 有罪的是第二个 logDebug("Calling getPurchases with continuation token: " + continueToken);
Bundle ownedItems = mService.getPurchases(3,mContext.getPackageName(),itemType,continueToken);
看来在调用该方法时该服务没有连接. Nexus 5设备上出现此错误(根据开发者控制台) 这是Android 5的已知问题吗? 解决方法我修改了这段代码…do {
logDebug("Calling getPurchases with continuation token: " + continueToken);
Bundle ownedItems = mService.getPurchases(3,continueToken);
// ...
}
成为这个… do {
logDebug("Calling getPurchases with continuation token: " + continueToken);
if (mService == null || mContext == null) {
logError("Our service and/or our context are null. Exiting.");
return IABHELPER_UNKNOWN_ERROR;
}
Bundle ownedItems = mService.getPurchases(3,continueToken);
// ...
}
这几乎肯定是因为进程异步运行,并且当结果返回时,活动/应用程序(或正在)被关闭. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
