117

我正在尝试将 Android Market 应用内购买集成到我的应用中,但不幸的是,每次我尝试购买真正的应用内产品时都会遇到烦人的错误。

我已获取示例应用程序 (Dungeons) 并将其添加到我的应用程序中。我更新了公钥并将产品列表更新为以下内容:

/** 可以购买的产品的产品列表条目数组。*/

private static final CatalogEntry[] CATALOG = new CatalogEntry[] {
    new CatalogEntry("full", "Full v", Managed.MANAGED),

};

我已经使用 Eclipse 导出了该应用程序,并将其安装在我的手机上,并将其上传到了 Android Market 网站。同样在 Android Market 网站上,我已将 full 添加为应用内购买并发布。

我还将我的 googlemail 帐户添加为测试帐户(这是我在手机上登录的帐户)。

当我在手机上运行该应用程序时,每当我尝试购买完整的商品时,我都会收到一条您要求的商品不可购买的 android 消息,但如果我尝试例如 android.test.purchased,它绝对可以正常工作。

您请求的项目的文档不可用于购买 android 说明如下:

表示 Android Market 在应用程序的产品列表中找不到请求的项目。如果您的 REQUEST_PURCHASE 请求中的产品 ID 拼写错误,或者某个项目未在应用程序的产品列表中发布,则可能会发生这种情况。

产品 ID 完全一样,它已明确发布,并且请求必须通过,因为它是示例应用程序。

我正在使用相同版本的 apk,我也发布了 inapp 产品并激活了 apk。但我仍然面临同样的问题,请帮助我解决它。

任何想法将不胜感激!

4

19 回答 19

194

我对这个错误的经验是:

  1. 确保将签名的 APK 上传到开发者控制台。

  2. 确保在您的设备上安装签名的 APK,而不是在调试器中启动应用程序。

  3. 确保在您的开发者控制台中创建一个测试帐户。

  4. 设置您的测试帐户

    1. 确保使用您的测试帐户登录您的设备。
    2. 在封闭的 alpha/beta 测试的情况下,请确保您已将您的测试帐户添加到选定的测试人员组,您可以在管理您的 alpha/beta 版本的页面上执行此操作。
    3. 如果是封闭的 alpha/beta 测试,请确保您的测试帐户已通过特殊邀请链接接受参与此应用程序的测试
  5. 确保在您的开发者控制台中创建应用计费,最后从控制台激活该项目!!!(这是在完全遵循谷歌教程后得到我的那个)

  6. 确保将清单中的 VersionCode 和 VersionName 设置为与开发人员控制台中的版本相同(Alpha、Beta 或 Production。Drafts 不再起作用)。@alexgophermix 答案对我有用。

如果您正在寻找没有实际提款的测试付款,您需要另外将您的测试帐户添加到另一个特殊的帐户列表“具有测试访问权限的 Gmail 帐户”,您可以在游戏帐户设置(不是项目!)中找到它。在可以看到项目列表的页面上,转到设置,然后在“帐户详细信息”页面(向下滚动,几乎在页面底部),您会找到“具有测试访问权限的 Gmail 帐户”列表。

于 2013-08-11T13:03:46.687 回答
108

以下是一些需要检查的事项:

  1. 您已经创建了一个 apk,并已将其发布Alpha 或 Beta的 GooglePlay Dashboard 。
  2. GooglePlay 仪表板中的应用程序不是处于草稿模式,而是处于已发布状态(您需要将屏幕左侧带有复选图标的所有小圆圈设为绿色,然后才能发布)。
  3. 设置了另一个测试帐户,而不是“附加”到 GooglePlay 仪表板的帐户。为此,您可以创建一个 Google+ 组,将您的测试帐户添加到该组并在 GooglePlay 仪表板中指定 Google+ 组。
  4. 您用于测试购买的 apk 具有相同的版本代码、版本名称,最重要的是,它使用与您在商店中发布的 apk相同的密钥库进行签名。
  5. 在更改仪表板中的某些内容之间等待几个小时,以便传播更改。这样做需要几个小时。
  6. 确保 sku 值是有效的 sku 值(将其与您在 GP 仪表板中输入的值进行比较)。
  7. 尝试购买已购买的商品。获取购买的物品并将其显示在日志中以查看是否有。如果是这样,则使用该产品或将钱退还到您的测试帐户(您需要等待退款传播。这需要几个小时。)
  8. 确保Inapps 处于活动状态

6 小时后,这对我来说是最后一部分:

  1. 确保您已使用测试帐户登录谷歌(在您的浏览器中)并打开此链接(标有红色)并批准成为测试员!!!! http://i.stack.imgur.com/VSgAV.png

更新

  1. 如果您使用flavors 构建针对不同CPU 的apk,并且为arm、armv7 和x86构建并将它们全部上传到商店,请记住使用其中一个来测试inapps。如果您使用包含所有 cpu 库的“通用”构建(基本上是商店上的另一个构建),它将无法工作。
于 2016-02-01T14:23:49.953 回答
45

当产品Inactive在 Play 商店中时会发生这种情况,Activate该产品应该可以正常工作。

于 2013-05-31T07:38:28.850 回答
29

这个错误还有另一个可能的原因,这几乎让我发疯了一整天,直到我发现问题所在:apk版本。如果您正在使用版本号高于上传到 Play 商店的版本号的本地 apk(正确签名、正确密钥、正确产品 ID),您也会收到此错误。

希望这可以帮助某人

于 2016-05-20T23:26:14.697 回答
24

当您所做的一切都很完美时,就会出现此错误,您使用了带有正确产品 ID 的签名 APK,但您必须注意,您使用的帐户可能没有正确的有效信用卡详细信息。

因此,即使您想购买任何产品,即使使用测试帐户,该帐户也应该具有有效的信用详细信息。

于 2012-12-10T11:27:08.167 回答
20

也许我做错了,但如果您正在测试的版本不在 Play 商店中作为 Alpha、Beta 或生产版本,您也会收到此错误。

我经常在测试新版本时(在上传到 Play 商店之前)更新我的 VersionCode 和 VersionName,然后在我去测试 IAB 特定功能时出现这个错误。

于 2015-09-03T21:58:30.510 回答
10

对于我的情况,需要从 APK 选项卡的Opt-in URL. 打开浏览器并使用链接。然后在该页面中注册为测试人员。

于 2015-09-11T03:39:29.713 回答
10

你必须接受成为测试员

发布管理 -> 应用发布 -> 管理测试人员然后以隐身模式打开此链接(选择加入 URL)以登录测试人员帐户

在此处输入图像描述

于 2018-06-12T02:59:27.393 回答
6

请检查您是否使用相同的测试帐户邮件ID

于 2012-10-30T07:05:17.123 回答
4

最新添加(2016/11):

  1. 测试人员必须接受来自开发者控制台链接的测试请求(部分:APK)

  2. 应用程序必须已发布:可以在 beta/alpha 测试中发布;信息:如果您在开发者控制台中点击“发布”,除非您将其传播到生产选项卡(在 APK 部分),否则它不会在生产中发布应用;

于 2016-11-01T13:54:16.373 回答
4

在购买应用内订阅时,我将下面列表中的所有内容都放在了正确的位置。

  1. 创建签名的 apk 并发布到alpha 通道

  2. 添加了测试人员电子邮件 ID 以进行许可测试

  3. 将测试人员电子邮件 ID 添加到封闭轨道 Alpha 测试

  4. 选择成为测试员

  5. 测试 ID与开发者帐号的 ID不同

  6. 在android设备上而不是在模拟器上

  7. 从Play商店下载了应用程序

我仍然收到此错误消息“找不到您要查找的项目”

浪费了 2-3 天后,我发现只有在 Play 商店中设置了某种支付模式才能正常工作。

虽然大多数答案都与旧的 IAB 购买有关,并且我实施了新的计费客户端 API,即 - implementation 'com.android.billingclient:billing:1.0',但要找到解决方案并不容易。

如果某些人的情况相同,则添加付款方式可能会帮助您克服此错误。您甚至需要添加一个来测试它,但是,作为许可证测试人员添加的电子邮件 ID不会收费。

于 2019-11-01T07:48:30.773 回答
2

如果产品状态为“非活动”,请激活它。这为我解决了。当然谷歌需要一段时间来更新

还要确保您的测试邮件已注册。

于 2014-05-23T07:07:50.857 回答
2

就我而言,我必须将我的电子邮件地址添加到以下字段。 在此处输入图像描述

于 2021-04-15T11:53:58.833 回答
1

在尝试了互联网上建议的所有方法后,“开放式 Alpha 测试”或“开放式 Beta 测试”为我解决了这个问题。

转到 Android 开发者控制台 -> 您的应用 -> APK,然后选择使用 Open Alpha/Beta 测试。将提供的链接发送给您自己或测试人员。

只要他们在 Android 设备上使用该帐户登录,他们就可以对其进行测试。

祝你好运

于 2015-09-11T00:20:36.590 回答
1

我遇到了同样的问题,我的解决方案是将您的应用程序的当前版本上传到 Play 商店,如果是用于测试,则将其上传到 Alpha 或 Beta 通道,我已经这样做了,错误消失了并且定价详细信息显示正确..

于 2017-05-26T06:30:29.477 回答
1

这是我测试与上述一些答案相关的 IAP 的经验

  1. 您创建了一个 apk,并将其发布到 Alpha 版或 Beta 版的 GooglePlay Dashboard。

没有。我有一个处于内部测试(Alpha 前)的测试应用程序,并且 IAP 运行良好。同样,现在我相信我们大多数人发布 AAB 捆绑包而不是 APK,我认为对于新应用 AAB 可分发是一个要求(可能是这里的一个因素?)。

  1. GooglePlay 仪表板中的应用程序未处于草稿模式,而是处于已发布状态(您需要将屏幕左侧带有复选图标的所有小圆圈设为绿色,然后才能发布)。

又不是真的。我正在测试的应用程序的应用程序状态是草稿/内部测试(显示在所有应用程序列表中)。除非“已发布”,否则它的意思是:“发布可供内部测试人员使用。”

  1. 您已经设置了另一个测试帐户,然后是“附加”到 GooglePlay 仪表板的那个。为此,您可以创建一个 Google+ 组,将您的测试帐户添加到该组并在 GooglePlay 仪表板中指定 Google+ 组。

那可能是正确的。我在新安装的应用程序中恢复购买(如果购买了某些产品,然后该应用程序被卸载并随后重新安装,或者在具有相同 Google 帐户的不同设备上再次安装)和购买它们时遇到了一些问题,直到我开始使用不同的账户。

  1. 您用于测试购买的 apk 具有相同的版本代码、版本名称,最重要的是,它使用与您在商店中发布的 apk 相同的密钥库进行签名。

又不是真的。我在商店中的应用程序的版本和内部版本号与我在本地测试的应用程序不同。在我的情况下,对于商店中的应用程序,版本是在构建应用程序时分配的,就在部署之前,并且内部版本号是根据 repo 中的提交数计算的,两者都发生在我使用的 CI 中(Jenkins )。我在通过 USB 电缆连接到我的开发机器的设备上本地运行的一个,从 IDE(在我的情况下为 IntelliJ)以调试模式运行 - 几乎标准场景显然没有使用与 PlayStore 中相同的密钥进行签名,并且版本和内部版本号都是固定的。IAP 在本地运行时仍然有效。

  1. 测试人员必须接受来自开发者控制台链接的测试请求

True + 确保如果测试人员在测试设备上有多个帐户,则与您的应用程序的“许可证测试”部分中声明的电子邮件关联的帐户是活动的。

于 2021-12-09T00:01:25.873 回答
0

为了解决此问题,请按照下列步骤操作:

  1. 在 Google Play 开发者控制台上创建产品。

  2. 保存并将其设置为“活动”。

  3. 将 APK 上传到 Google Play。

注意 在步骤 1 中创建产品 6 小时后,应用内计费可能无法工作。

于 2015-12-13T12:24:24.427 回答
0

投票最多的答案几乎涵盖了所有内容,但如果您像我一样愚蠢地匆忙完成应用发布流程以继续测试 IAP,请务必在您正在测试的国家/地区的 Play 商店中发布应用在!在设备上进行检查的简单方法是在打开测试选择加入 URL 时点击“在 Google Play 上下载”链接。如果您在尝试通过 Google Play 商店打开时收到“未找到项目”错误,那么很可能您的应用尚未在那里发布。我遇到了这个问题,因为我通过 ADB 正确加载了已签名的应用程序,虽然 IAP 会显示在构建中,但当您尝试购买它们时会出现此错误。

于 2019-02-13T15:30:18.920 回答
-1

可能有三种可能性:

  1. 将您在 google play 上的 APK 保存为草稿,不要忘记激活它并使用唯一 ID 发布您的产品。
  2. 检查您的 ID 是否与 Google Play 上的产品 ID 相同。
  3. 或检查项目类型是否相同,例如在 Google Play 和您的代码中管理。

如果您正在测试,则无需发布应用程序。只需将其保存为草稿即可。然后等待一段时间可能是 2 到 3 小时才能激活此功能。

于 2012-10-29T07:28:19.230 回答