我目前正在与 Android Iab v3 作斗争。
我之前一直在使用 Google 的 IabHelper 类来成功显示可用产品。然而,今天它不再返回任何东西。
传递给IabHelper类中IInAppBillingService的getSkuDetails函数的querySku字段内容为:
Bundle[{ITEM_ID_LIST=[com.app.android.credits.10, com.app.android.credits.25, com.app.android.credits.50]}]
我在它返回的包中得到的是:
Bundle[{DETAILS_LIST=[], RESPONSE_CODE=0}]
自从它开始工作以来,现在我根本没有更改 IabHelper 代码以及显示产品的代码。代码的重要部分是:
private void getItemsForSale()
{
ArrayList<String> skuList = new ArrayList<String>();
skuList.add(getResources().getString(R.string.ten_credits_product_id));
skuList.add(getResources().getString(R.string.twenty_credits_product_id));
skuList.add(getResources().getString(R.string.fifty_credits_product_id));
mHelper.queryInventoryAsync(true, skuList, this);
}
@Override
public void onQueryInventoryFinished(IabResult result, Inventory inv)
{
if(result.isFailure())
{
Log.d("DEBUG", "Error Inventory Query: " + result);
AppMsg.makeText(BuyCreditsActivity.this, R.string.sorry_something_went_wrong, AppMsg.STYLE_ALERT).show();
}
else
{
// Code here queries the inv object returned which has a blank array
}
}
这就是我很困惑的原因。
有没有人知道什么外部因素可能导致它开始不返回任何产品详细信息?
最佳答案
我得到的是与昨天相同的空包裹。这个问题不是一回事,但最近有人问过,似乎是相关的:Android inventory.getSkuDetails() returning null
(大约2周前我也经历过这个)
第一个回答说: “他们说他们已经做出更改,要求在添加应用程序购买之前发布 apk,他们建议将 apk 上传到 alpha 测试 channel 并发布(不是草稿模式)。”
我会试试这个,也许它能解决问题。
更新:我发布了应用程序,但开发者控制台显示修改不会立即生效。几个小时后问题仍然存在,但今天它运行良好。
关于Android IABv3 getSkuDetails 不返回 Sku 详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23914116/