您要求的商品无法购买


95

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

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

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

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

};

我已经使用Eclipse导出了该应用程序,并将其安装在手机上,还上传到了Android Market网站。另外,在Android Market网站上,我已经添加了完整的应用内购买内容并发布了它。

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

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

您所要求的商品不可用于购买android的文档说明如下:

表示Android电子市场在应用程序的产品列表中找不到所请求的商品。如果您的REQUEST_PURCHASE请求中的产品ID拼写错误,或者未在应用程序的产品列表中发布商品,则可能会发生这种情况。

产品ID完全相同,它已明确发布,并且请求必须是正确的,因为它是示例应用程序。

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

任何想法将不胜感激!


1
您发布产品?
Mohsin Naeem 2012年

您用于的Google帐户Merchant Account不同于设备帐户?
Mohsin Naeem

1
确保您在Play商店中添加的产品的状态显示为“有效”
阿里

确保您的测试人员单击了“选择加入”链接...
Pixel

Answers:


181

我对这个错误的经验是:

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

  2. 确保在设备上安装签名的APK,但不要在调试器中启动应用。

  3. 确保在开发人员控制台中创建测试帐户。

  4. 设置您的测试帐户

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

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

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


5
永远记得使用签名的版本来测试应用程序。+1
Vamsi Challa 2015年

36
确保将清单中的VersionCode和VersionName设置为与开发者控制台中的版本相同(Alpha,Beta或Production。Draft不再起作用)。@alexgophermix答案对我有用。+1
i.shadrin

6
此外,请确保您测试的用户已选择加入Alpha(如果您正在使用该Obv)。将它们添加到许可证测试中还不够。
亚行

4
通过打开加入网址并使用测试帐户,确保您已批准成为测试人员。
bogumil

1
版本代码必须匹配,感谢大家的注意,省去了片刻的恐慌。
Meanman '16

97

这里有一些要检查的东西:

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

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

  1. 确保您已使用测试帐户登录google(在浏览器中),并打开此链接(标有红色),并同意成为测试人员http://i.stack.imgur.com/VSgAV.png

更新

  1. 如果您使用口味来构建针对不同CPU的apk,并且针对arm,armv7和x86进行构建,然后将它们全部上传到商店,请记住使用其中一种来测试inapp。如果您使用包含所有cpu库的“通用”构建(基本上是商店中所提供的另一个构建),则它将无法正常工作。

14
我也遇到你 全部1-8没问题,但问题是9。浪费我的一整天来找到这个。你是我的救星。
Paiboon Panusbordee '16

2
是的,最后一部分是最重要的,似乎google更改了规则,它可以正常使用而无需执行第9步,但是现在,对于封闭测试版或开放测试版,您需要单击链接。谢啦!
思远张

我的问题是4.安装的apk的版本代码与google play apk不一致。一旦我制作了相同的版本,它就会起作用。这个答案很有价值。
Thupten

我非常讨厌这种“几个小时”的不确定性!在这“几个小时”中,我的老板通常吓坏了!顺便说一句,如果您有手动安装的APK,则根本不会收到任何更新!愚蠢的是,使用自己签名的APK,IAB无法正常工作。我猜我们需要等待该死的更新发生!
WindRider

1
感谢您的步骤9
zdd


23

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

希望这可以帮助某人


这不能为问题提供答案。一旦你有足够的声誉您就可以在任何帖子中发表评论;相反,请提供不需要问询者澄清的答案。- 评分
tttony

11
这个答案的信息实际上是很容易知道的,并且对于像我这样的人来说可能是正确的答案
AlexioVay '16

6
@tttony我指出了错误的另一个原因,我没有要求任何澄清。如果您手动安装版本号高于发布的应用内购买版本的APK,这不是一个假设或问题。返回此错误。
DavidBVal '16

2
这是非常有用的信息。非常感谢您节省了我的大量时间。竖起大拇指。
Aritra Roy

22

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

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


这个答案既真实又难得。因此,非常感谢您付出了更多努力,并没有添加另一个“激活您的产品”答案。

19

也许我做错了,但是如果您要测试的版本不在Alpha,Beta或正式版的Play商店中,您也会收到此错误消息。

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


4
在上传到Play商店后,至少还需要等待45-90分钟才能开始工作。
mm2001

9

就我而言,需要从APK选项卡的中获取链接Opt-in URL。打开浏览器并使用链接。然后在该页面中注册为测试人员。


9

您必须接受才能成为测试员

发布管理->应用发布->管理测试人员,然后以隐身模式打开此链接(启用网址)以登录测试人员帐户

在此处输入图片说明


我是测试人员,我有同样的问题。
Jorgesys

4

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


如果将我的设备登录名设置为另一个邮件ID,则在我将testaccount邮件ID设置为主要ID后即可解决此问题。
laxman '10

3
这不能为问题提供答案。要批评或要求作者澄清,请在其帖子下方留下评论-您可以随时对自己的帖子发表评论,一旦您拥有足够的声誉,就可以在任何帖子中发表评论
阿齐兹·谢赫

当我以除测试帐户邮件ID(在开发人员控制台中公共密钥下指定的testaccount邮件ID)以外的设备登录时,我收到此错误。如果我将testaccount邮件ID设置为我的设备的主要邮件ID
laxman,2012年

4

最新增加的内容(2016/11):

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

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


2

如果产品状态为“无效”,则将其激活。这个为我解决了。当然,Google需要一段时间才能更新

另外,请确保您的测试邮件已注册。


1

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

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

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

祝好运


1

我也遇到了同样的问题,对我来说,解决方案是将您应用的当前版本上传到Play商店,如果要进行测试,然后将其上传到Alpha或Beta通道,我已经做到了,并且错误消失了并且价格明细显示正确..


0

可能存在三种可能性:

  1. 将您的APK在Google Play上另存为草稿,别忘了激活它并使用唯一的ID发布您的产品。
  2. 检查您的ID是否与Google Play上的产品ID相同。
  3. 或检查项目类型是否相同,例如在Google Play和您的代码中均已托管。

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


3
以上三个条件均得到满足,但显示出相同的错误
Laxman 2012年

0

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

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

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

  3. 将APK上传到Google Play。

注意:在第1步中创建产品6个小时后,应用内结算功能才能生效。


0

票数最高的答案几乎涵盖了所有内容,但是如果您像我一样急于完成应用发布过程以继续测试IAP,那么请务必在您要测试的国家/地区的Play商店中发布该应用在!在设备上进行检查的简单方法是,在打开测试加入网址时,点击“在Google Play上下载”链接。如果您尝试通过Google Play商店打开时遇到“找不到商品”错误,则可能您的应用尚未发布。我遇到了这个问题,因为我是通过ADB正确加载了经过签名的应用程序,尽管IAP将显示在内部版本中,但是当您尝试购买它们时会遇到此错误。


0

在购买应用内订阅时,我在正确的位置列出了所有内容。

  1. 创建签名的APK,并发布到Alpha通道

  2. 已将测试人员的电子邮件ID添加到许可证测试中

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

  4. 选择成为一名测试员

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

  6. 在Android设备上而不在模拟器上

  7. 从Play商店下载了该应用

仍然我收到此错误,提示“找不到您要查找的商品”

浪费了2-3天后,我发现只有在Play商店中设置了某种付款方式后,它才可以工作。

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.