Android:应用内购买查询不返回任何产品(skuDetails)

2024-01-16

我正在开发我的第一个 Android 应用程序。我确实在堆栈溢出方面学到了很多东西。但我目前的问题还没有找到解决方案。

我尝试实现“应用内购买”。我做了以下事情:

1) 在开发者控制台中,我上传了经过 alpha 和 beta 测试的已签名 apk。我还向该帐户添加了一个测试用户,并使用该帐户进行测试。此外,我添加了一些状态为活动的“应用内产品(托管)”。

2)如描述http://developer.android.com/training/in-app-billing/index.html http://developer.android.com/training/in-app-billing/index.html我下载了必要的 lib 字段,从示例项目 TrivialDrive 复制了代码,并遵循了编码的所有步骤:

// called when the app is started
public void setupConnectionToGooglePlay(final Context context) {
    this.context = context;

    mHelper = new IabHelper(context, base64EncodedPublicKey);

    mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
        public void onIabSetupFinished(IabResult result) {
            if (!result.isSuccess()) {
                // Oh no, there was a problem. --> no error message shown to
                // the user!
                Toast.makeText(context, "No connection to google:" + result, Toast.LENGTH_LONG).show();
            } else {
                Toast.makeText(context, "connection to google:" + result, Toast.LENGTH_LONG).show();
                // If connection is established:
                get List of all in App Purchase products
                getListOfInAppPurchaseProducts();
            }
        }
    });
}

当执行这部分代码时,我得到的结果是连接已成功建立。因此调用 getListOfInAppPurchaseProducts() 方法。

private void getListOfInAppPurchaseProducts() {
    IabHelper.QueryInventoryFinishedListener mQueryFinishedListener = new IabHelper.QueryInventoryFinishedListener() {
        public void onQueryInventoryFinished(IabResult result, Inventory inventory) {
            if (result.isFailure()) {
                // no error message is shown to the user
                Toast.makeText(context, "Query not successful", Toast.LENGTH_LONG).show();
            } else {
                String message = result.getMessage();
                boolean isSuccess = result.isSuccess();
                // no success message is shown to the user
                List<String> skus = inventory.getAllOwnedSkus();
                Map<String,SkuDetails> map = inventory.getSKUMap();
                int size = map.size();

                Toast.makeText(
                        context,
                        "Message: " + message + "Query successful. Mapsize:" + size, Toast.LENGTH_LONG).show(); 

                WMGooglePlayConnection.this.inventory = inventory;

            }
        }
    };

    ArrayList<String> list = new ArrayList<String>();
    list.add("test");
    list.add("test2");
    mHelper.queryInventoryAsync(true, list, mQueryFinishedListener);
}

不幸的是,返回的库存不包含任何 SKU 详细信息(即使查询成功)。我检查了以下内容:

  • 产品ID
  • 产品 ID 的状态(活动)
  • base64编码的公钥

为了进行测试,我使用了真实设备(Samsung ACE 2)。我直接将apk文件复制到设备上(不是从google play下载的)。这会是一个问题吗?

是否可以通过模拟器获取 SKU 详细信息?

你知道我可以检查什么吗?

如果有人能帮助我,那就太好了......


我也刚刚遇到了这个。当 Google Play Service 4.4 推出时,我们的应用内结算功能就崩溃了。我想是一两周前。

要让您的应用内计费产品立即显示,您必须发布您的 Alpha 版本,但只有您的测试人员列表/组中的人员才能看到它们。

发布应用程序后,测试人员可以使用与此类似的链接从 Google Play 商店下载该应用程序。

https://play.google.com/apps/testing/ https://play.google.com/apps/testing/

我希望这有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android:应用内购买查询不返回任何产品(skuDetails) 的相关文章

随机推荐

  • 在 AWS Sagemaker pytorch-1.10-cpu-py38 应用程序上使用 htop 出现段错误

    我正在尝试在 Pytorch 1 10 Python 3 8 CPU 优化的 AWS Sagemaker 容器中启动 htop 命令 这在我迄今为止使用过的其他图像中工作得很好 但在这一个图像中 该命令因段错误而失败 htop htop o
  • Python pandas 绘制如果孪生两个 y 轴则移动 x 轴

    我有一个包含 3 列的数据框 其中一列是 groupby 列 另外两列是带有值的 普通 列 我还想生成箱线图和条形图 在条形图上 我想可视化每个组元素出现的次数 让我的示例代码更详细地告诉这个数据框 li str one two three
  • 使用katex,“&”对齐符号显示为“amp;”

    我正在使用 katex 来渲染数学 https github com Khan KaTeX https github com Khan KaTeX 一般来说 为了让它工作 我链接到文件katex min js and katex min c
  • 地图 API - 街道上的标记

    在 Maps API 中 有没有办法将标记捕捉到街道 通常 如果您想按地址 而不是经纬度 设置标记 则标记会设置在建筑物内的某个位置 就我而言 如果您有例如一个有几家商店的大型购物中心 我宁愿在街上立一个标记 我正在使用地图 API v3
  • AssertionError:您需要在 UserProfile.Meta 中传递有效的 Django 模型,收到“无”

    我使用 AbstractBaseUser 自定义用户模型将 Django 模型添加到 graphql api 管理员工作正常 只是在尝试访问 graphql api 时出现错误 您需要在 UserProfile Meta 中传递有效的 Dj
  • MySQL 整数字段在 PHP 中以字符串形式返回

    我在 MySQL 数据库中有一个表字段 userid INT 11 所以我用这个查询将它调用到我的页面 SELECT userid FROM DB WHERE name john 然后为了处理结果我这样做 row result gt fet
  • Here Maps Routing API V8 - 多个路径点

    我对 Here Maps Routing API v8 非常陌生 我已经尝试过这里提供的示例 https developer here com documentation maps 3 1 15 1 dev guide topics rou
  • 在 C# 中使用 Directory.GetFiles 和正则表达式?

    我有这个代码 string files Directory GetFiles path SearchOption AllDirectories 我想要的是仅返回不以以下内容开头的文件p and t 并具有扩展名 png 或 jpg 或 gi
  • .External.graphics R 中的错​​误

    我使用下面的函数从 48 列 X 32 行的矩阵创建热图 heatmap 2 all data Rowv FALSE Colv FALSE trace none main All data col colorRampPalette c gr
  • 如何在Authorize.net中查看交易已结算/未结算?

    如何在authorize net中查找用户进行的交易是否已结算或未结算 我正在使用AIM 我想通过编码 当交易完成时 我找不到交易状态 但我想知道它是已结算还是未结算的交易 提前致谢 您无法通过编码获取此信息 因为 Authorize Ne
  • 如何计算具有重复元素的列表的排列(排列)

    我有一个包含重复元素的列表 即orig 1 1 1 2 2 3 我想创建一个精神错乱 https en wikipedia org wiki Derangement b f orig 这样对于每个位置值b与值不同orig b i orig
  • 不安全的 C 函数及其替换

    如果我错了 请纠正我 我在网站上进行了研究 但找不到针对此问题的任何综合帖子 C 中有许多不安全函数可能导致缓冲区溢出 并且有安全函数来替代它们 我有几个 gets 替换为 fgets sprintf 替换为 strcat 替换为 strc
  • 使用 AngularJS 的数据表中的单元格按钮

    我正在使用 angularjs 构建一个网站 并从网络服务获取数据 我需要将该数据填充到数据表中 并为每一行创建一个编辑按钮 经过一番调查我想出了this http jsfiddle net ultrasardine 7kLFU 485 问
  • 网站未在某些页面加载 css 文件

    我正在构建的网站不会加载某些页面的任何 css javascript 文件 有问题的页面是 Markdown 帖子文件 我正在使用 Jekyll 来构建该网站 链接在这里 http joshhornby co uk http joshhor
  • 如何将数组转换为元组?

    我有一个Array Any 来自 Java JPA 包含 在本例中为两个 但考虑任意少量 不同类型的事物 我想将它们表示为元组 我有一些快速而肮脏的转换代码 并且想知道如何改进它并使其更加通用 val pair query getSingl
  • 如何在jvm上运行scala字节码?

    如何在 jvm 上运行编译后的 scala 代码 当我尝试以下命令时 java cp scala library jar cp bin com mcmc5 Main 我收到以下错误 Exception in thread main java
  • 将多个正则表达式连接成一个正则表达式

    对于文本文件 我想匹配以 BEAM 和 FILE PATH 开头的字符串 我会用 BEAM FILE PATH 如果我要单独匹配它们 但现在我必须将这两个匹配模式连接成一个模式 关于如何做到这一点有什么想法吗 竖线 竖线字符通常用正则表达式
  • MSTest 似乎毫无原因地挂起

    从命令行运行 MSTest 测试在 等待运行 代理 时挂起 没有任何错误或超时 原因可能是 队列中没有运行 但为什么会这样我不知道 因为exact同样的测试在另一台机器上运行得很好 我们最近从在测试机器上评估 TeamCity 转向将其安装
  • 如何处理 Perl 正则表达式中的特殊字符?

    我正在使用 Perl 程序从文件中提取文本 我有一个字符串数组 用作文本的分隔符 例如 pat arr 1 arr 2 if src pat print 1 但是 数组中的两个字符串是 450 and Buy now 这些的问题在于字符串中
  • Android:应用内购买查询不返回任何产品(skuDetails)

    我正在开发我的第一个 Android 应用程序 我确实在堆栈溢出方面学到了很多东西 但我目前的问题还没有找到解决方案 我尝试实现 应用内购买 我做了以下事情 1 在开发者控制台中 我上传了经过 alpha 和 beta 测试的已签名 apk