我正在研究android..i的app计费跟随android的教程,目前我正在测试测试应用程序。(android.test.purchased) 我在谷歌控制台上创建应用程序 我签署apk并上传到谷歌控制台比我复制公钥并将其粘贴到我的代码并再次签名apk并安装在手机上比我试图购买测试购买的ID它显示我购买成功但我的日志值我显示purchasedata和datasignature,我得到datasignature NULL(空)
有趣的部分是在handleActivityResult方法中有一个if条件检查天气数据签名或者purchasedata是否为Null,而在我的代码中如果跳过它则不执行?怎么可能?
这里我是pur log但是在我的logcat中我看不到“In BUG Null value”
if (purchaseData == null || dataSignature == null) {
logError("BUG: either purchaseData or dataSignature is null.");
Log.e("Inapp", "In BUG Null value");
logDebug("Extras: " + data.getExtras().toString());
result = new IabResult(IABHELPER_UNKNOWN_ERROR, "IAB returned null purchaseData or dataSignature");
if (mPurchaseListener != null) mPurchaseListener.onIabPurchaseFinished(result, null);
return true;
}
答案 0 :(得分:3)
我自己有这个问题。过了一会儿,我发现了我做错了什么。我在IABHelper上调用了错误的方法。
如果您使用在Google Developer Console上注册为订阅的SKU调用mHelper.launchPurchaseFlow(...),则会导致错误:IAB返回null purchaseData或dataSignature(响应-1008:未知错误)。< / p>
如果您的SKU已注册为订阅,则必须使用以下方法: mHelper.launchSubscriptionPurchaseFlow(...)。
希望这有帮助。