这不是一个服务器侧边错误。 错误位于样本应用程序的 Dungeons 类的“ 采购” 按钮的点击中 。
如果 {{{( seven) 语句导致 mBilling Service 。 请在选定项目不是订阅项目时两次调用 Purchase 两次 (mManagedType! = managed. suproduced. SUBSCRIPTION), 则提供的方法在 {( seven ) 中存在错误 {( seven ) 。 因此, 同一项目将两次要求调用, 一次带有“ intapp ” ( 这是有效的请求) 类型, 之后立即使用“ sub” 类型( 不正确, 它显示“ 找不到项目 ” ) 。
这里是错误代码 :
if (mManagedType != Managed.SUBSCRIPTION &&
!mBillingService.requestPurchase(mSku, Consts.ITEM_TYPE_INAPP, mPayloadContents)) {
showDialog(DIALOG_BILLING_NOT_SUPPORTED_ID);
} else if (!mBillingService.requestPurchase(mSku, Consts.ITEM_TYPE_SUBSCRIPTION, mPayloadContents)) {
// Note: mManagedType == Managed.SUBSCRIPTION
showDialog(DIALOG_SUBSCRIPTIONS_NOT_SUPPORTED_ID);
}
要修正此选项, 请将 mManagedType 添加到上面 。
函数的外观如下:
@Override
public void onClick(View v) {
if (v == mBuyButton) {
if (Consts.DEBUG) {
Log.d(TAG, "buying: " + mItemName + " sku: " + mSku);
}
if (mManagedType != Managed.SUBSCRIPTION &&
!mBillingService.requestPurchase(mSku, Consts.ITEM_TYPE_INAPP, mPayloadContents)) {
showDialog(DIALOG_BILLING_NOT_SUPPORTED_ID);
} else if (mManagedType == Managed.SUBSCRIPTION && !mBillingService.requestPurchase(mSku, Consts.ITEM_TYPE_SUBSCRIPTION, mPayloadContents)) {
// Note: mManagedType == Managed.SUBSCRIPTION
showDialog(DIALOG_SUBSCRIPTIONS_NOT_SUPPORTED_ID);
}
} else if (v == mEditPayloadButton) {
showPayloadEditDialog();
} else if (v == mEditSubscriptionsButton) {
editSubscriptions();
}
}