您所要求的物品不可购买
我正在尝试将Android Market应用内购买function集成到我的应用中,但每次尝试购买真正的inapp产品时都会遇到令人讨厌的错误。
我已经拿了示例应用程序(Dungeons),并将其添加到我的应用程序。 我已经更新了公钥,并且将产品列表更新为以下内容:
/ **可以购买的产品的一系列产品列表条目。 * /
private static final CatalogEntry[] CATALOG = new CatalogEntry[] { new CatalogEntry("full", "Full v", Managed.MANAGED), };
我使用Eclipse导出了应用程序,并将其安装在手机上,并将其上传到Android Market网站。 另外在Android电子市场网站上,我已经添加了完整的应用内购买并发布了它。
我还将我的googlemail帐户添加为testing帐户(即我在手机上login的帐户)。
当我在手机上运行应用程序时,当我尝试购买完整版本的应用程序时,我得到了一个您没有购买android消息的项目,但是如果我尝试使用android.test.purchased,则它工作得非常好。
您请求的商品的文档不可用于购买Android状态如下:
表示Android电子市场在应用程序的产品列表中找不到请求的项目。 如果产品ID在您的REQUEST_PURCHASE请求中拼写错误,或者应用程序的产品列表中未发布项目,则可能会发生这种情况。
产品ID是定义相同的,它是定义发布的,并且请求必须通过,因为它是示例应用程序。
我使用相同版本的apk,我发布了inapp产品也激活apk也。 但仍然面临同样的问题,请帮助我解决这个问题。
任何想法将不胜感激!
我对这个错误的经验是:
-
确保将已签名的APK上传到开发者控制台。
-
请确保在您的设备上安装已签名的APK,而不是在debugging器中启动应用程序。
-
确保在开发者控制台中创buildtesting帐户。
-
build立你的testing帐户
- 确保使用您的testing帐户login您的设备。
- 在一个封闭的alpha / betatesting中,确保你已经把你的testing账号添加到选定的testing者组,你可以在pipe理你的alpha / beta版本的页面上做这个。
- 在封闭的alpha / betatesting的情况下,确保您的testing帐户已通过特殊邀请链接接受参与testing此应用程序
-
确保在开发者控制台中创build应用程序结算,并最终从控制台激活项目! (这是完全按照谷歌的教程后,我得到了我)
-
请确保在清单中设置VersionCode和VersionName与开发者控制台(Alpha,Beta或Production中的版本)相同。草稿不再有效。 @alexgophermix答案为我工作。
如果您正在寻找没有实际取款的testing付款,则需要另外将testing账户添加到另一个特定的账户“具有testing访问权限的Gmail账户”中,您可以在账户设置(不是项目!)中find该账户。 在可以看到项目列表的页面上,进入设置,然后在“帐户详细信息”页面(向下滚动,几乎在页面底部),您会看到“带有testing访问权的Gmail帐户”列表。
这里有一些事情要检查:
- 您已经创build了一个apk,并且已经将它发布到Alpha或Beta版的GooglePlay控制台。
- GooglePlay控制台中的应用程序不处于“草稿”模式 ,而是在“发布”(在发布前,您需要在屏幕左侧的所有小圆圈中均显示其中的检查图标)。
- 您已经设置了另一个testing帐户,而不是“附加”到GooglePlay控制台的testing帐户 。 您可以通过创buildGoogle+群组,将testing帐户添加到该群组,并在GooglePlay控制台中指定Google+群组。
- 您用于testing购买的apk具有相同的版本代码,版本名称 ,最重要的是,它使用与您在商店中发布的apk 相同的密钥库进行签名 。
- 当您更改仪表板中的某些内容以便更改传播时,您需要等待几个小时。 这需要几个小时的时间。
- 确保sku值是一个有效的sku值 (与您在GP仪表盘中input的值进行比较)。
- 您尝试购买已经购买的物品 。 获取购买的项目并将其显示在日志中,以查看是否如此。 如果是这样,那么消费该产品或将钱退还给您的testing帐户(您需要等待退款传播,这需要几个小时)。
- 确保Inapps是活动的 !
最后一部分是6小时后对我来说是什么,
- 确保你已经用testing账号login到谷歌(在你的浏览器中),然后你打开这个链接(用红色标记),你同意成为一个testing者 ! http://i.stack.imgur.com/VSgAV.png
UPDATE
- 如果您使用风格来构build针对不同CPU的apks,并为arm,armv7和x86构buildapk,并将其全部上传到商店,请记住使用其中之一来testinginapps。 如果使用包含所有cpu库的“通用”构build(基本上是另一个构build而不是存储),它将无法工作。
当Play商店中的产品处于Inactive
时,会发生这种情况, Activate
产品并且应该可以正常工作。
如果您所做的一切都是完美的,您已经使用带有正确产品ID的签名APK,但是您必须注意,您使用的帐户可能没有正确的有效信用卡详细信息。
所以,即使有testing账户 ,只要你想购买任何产品 ,该账户应该有有效的信用细节。
也许我一直在做这个错误,但是如果您testing的版本不在Alpha版,Beta版或Production版的Play商店中,您也会得到这个错误。
我经常更新我的VersionCode和VersionName,同时还在testing新版本(在上传到Play Store之前),然后在我去testingIAB特定function时结束这个错误。
这个错误还有另一个可能的原因,这个错误几乎让我发疯了一整天,直到我发现问题是什么:apk版本。 如果您使用的本地apk版本(正确签名,正确的密钥,正确的产品ID)的版本号高于上载到Play商店的版本号,则也会出现此错误。
希望这有助于某人
对于我的情况是需要去从APK标签的Opt-in URL
。 打开浏览器并使用链接。 然后在该页面中注册为testing人员。
请检查您是否使用相同的testing帐户邮件编号
如果产品状态处于“未激活”状态,请将其激活。 这解决了我。 当然谷歌需要一段时间来更新
还要确保您的testing邮件已被注册。
最新增加(2016/11):
-
testing人员必须接受从开发者控制台(部分:APK)获取的链接所采取的testing请求
-
应用程序必须发布:可以在beta / alphatesting中发布; 信息:如果您在开发者控制台中点击“发布”,它将不会在“生产”中发布应用,除非您将其传播到“生产”选项卡(在APK中);
尝试了所有通过互联网提出的方法之后,“开放式Alphatesting”或“开放Betatesting”为我解决了这个问题。
转到Android开发者控制台 – >您的应用程序 – > APK然后select使用Open Alpha / Betatesting。 发送提供给您自己或testing人员的链接。
只要他们在Android设备上使用该帐户login,就可以对其进行testing。
祝你好运
可能有三种可能性:
- 将您的APK保存在谷歌播放作为草稿,不要忘记激活这一点,并发布您的产品与独特的ID。
- 请检查您的ID是否与Google Play上的产品ID相同。
- 或者检查商品types是否相同,例如在Google Play和您的代码中进行pipe理。
如果您正在testing不需要发布应用程序。 把它保存为草稿。 然后等待一段时间,可能需要2到3小时才能激活。
为了解决此问题,请按照下列步骤操作:
-
在Google Play开发者控制台上创build产品。
-
保存并将其设置为“活动”。
-
将APK上传到Google Play。
注意在步骤1中创build产品6小时后,应用内结算可能无法使用。
我面临着同样的问题,我的解决scheme是上传当前版本的应用程序到Play商店,如果是用于testing,然后上传到Alpha或Beta频道,我已经做了这个,错误消失了并定价细节显示正确..