Android IABv3 getSkuDetails 不返回 Sku 详​​细信息

Posted

技术标签:

【中文标题】Android IABv3 getSkuDetails 不返回 Sku 详​​细信息【英文标题】:Android IABv3 getSkuDetails not returning Sku Details 【发布时间】:2014-07-17 19:46:39 【问题描述】:

我目前正在使用 android Iab v3。

我之前一直在使用 Google 的 IabHelper 类来成功展示可用的产品。然而,今天它不再给我任何回报。

IabHelper类中传递给IInAppBillingService的getSkuDetails函数的querySku字段内容为:

捆绑[ITEM_ID_LIST=[com.app.android.credits.10, com.app.android.credits.25, com.app.android.credits.50]]

我在它返回的包中得到的是:

捆绑[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
    

这就是我如此困惑的原因。

有没有人知道什么外部因素可能导致这开始不返回任何产品详细信息?

【问题讨论】:

我正在经历同样的事情。它以前可以工作,现在不行,而且我没有更改任何与 iab 相关的内容。我确实升级了我的 adt 包,但 IInAppBillingService.aidl 没有改变。 【参考方案1】:

我遇到了同样的问题。在我的情况下,以下工作:

    确保它实际上是在 alpha、beta 或生产环境中发布。 例如,如果它显示为“Draft in Alpha”或 beta,那么您 还没有发布。发布意味着你还需要上传 Google Play、描述、内容所需的最低资产 评分等(请参阅 APK、商品详情和内容评分标签 开发者控制台)。 至少对于 alpha 和 beta 测试,有一个测试人员列表 您必须创建并添加每个测试人员的电子邮件。寻找“管理 Alpha 测试或 Beta 测试标签中的“测试人员”部分。 每个测试人员还必须接受成为测试人员。有一个选择加入的 URL 您必须发送给测试人员的链接,他们必须点击 链接并接受条件。 全部完成后,您仍然需要等待大约 1 小时 购买详情开始出现。

希望这会有所帮助!

【讨论】:

这是否意味着您将无法在调试模式下测试应用内购买?仅当您从 Play 商店(通过选择加入 URL)下载并安装应用程序时,才会显示 Sku 详​​细信息? 您始终可以从 android studio 构建发布版本,并为您的构建类型发布设置 debuggable true - 并确保您构建的版本与您上传到 Play 商店的完全相同【参考方案2】:

从昨天开始,我收到了同样的空包。这个问题不是一回事,不过最近有人问过,好像有关系:Android inventory.getSkuDetails() returning null (大约两周前我也经历过这个)

第一个答案是: “他们说他们已经进行了更改,要求在添加应用购买之前发布 apk,他们建议将 apk 上传到 alpha 测试通道并发布(而不是草稿模式)。”

我会试试这个,也许它可以解决问题。

更新:我发布了应用程序,但开发者控制台写道,修改不会立即生效。几个小时后问题出现了,但今天它运行良好。

【讨论】:

只有三星有这个问题。

以上是关于Android IABv3 getSkuDetails 不返回 Sku 详​​细信息的主要内容,如果未能解决你的问题,请参考以下文章

Android逆向系列文章— Android基础逆向

Android 逆向Android 权限 ( Android 逆向中使用的 android.permission 权限 | Android 系统中的 Linux 用户权限 )

Android 逆向Android 权限 ( Android 逆向中使用的 android.permission 权限 | Android 系统中的 Linux 用户权限 )

android 21 是啥版本

Android逆向-Android基础逆向(2-2)

【Android笔记】android Toast