问题描述
||
我正在尝试将Android Market应用内购买集成到我的应用中,但是不幸的是,每次尝试购买测试产品时都会遇到一个烦人的错误。
我已经将示例应用程序(地下城)添加到了我的应用程序中。我已经更新了公钥,还将产品列表更新为以下内容:
/** An array of product list entries for the products that can be purchased. */
private static final CatalogEntry[] CATALOG = new CatalogEntry[] {
new CatalogEntry(\"lemonstorm.huru.full\",\"Full v\",Managed.MANAGED),new CatalogEntry(\"android.test.purchased\",\"purchased\",Managed.UNMANAGED),new CatalogEntry(\"android.test.canceled\",\"cancelled\",new CatalogEntry(\"android.test.refunded\",\"refunded\",new CatalogEntry(\"android.test.item_unavailable\",\"unavailable\",Managed.UNMANAGED)
};
我已经使用Eclipse导出了该应用程序,并将其安装在手机上,还上传到了Android Market网站。同样在Android电子市场网站上,我已经添加了Lemonstorm.huru.full作为应用内购买并发布了。
我还已将我的googlemail帐户添加为测试帐户(这是我在手机上登录的帐户)。
当我在手机上运行该应用程序时,每当我尝试购买lemonstorm.huru.full时,都会收到RESULT_ITEM_UNAVAILABLE消息,但是如果尝试例如android.test.purchased,它绝对可以正常工作。
RESULT_ITEM_UNAVAILABLE的文档指出以下内容:
表示Android电子市场无法在应用程序的产品列表中找到所需的商品。如果您的REQUEST_PURCHASE请求中的产品ID拼写错误,或者未在应用程序的产品列表中发布商品,则可能会发生这种情况。
产品ID完全相同,已明确发布,并且请求必须是正常的,因为它是示例应用程序,并且适用于android.test.purchased
任何想法将不胜感激!
解决方法
我有同样的问题。我发布该应用程序后,找到了产品。看起来像是Google测试帐户中的错误(?)
,我遇到过同样的问题。我在玩《龙与地下城》样本时,错过了sword_001和potion_001产品必须为“已发布”。对我来说,问题在于它们只是保存并保留为“未发布”。
为了解决这个问题,我刚刚编辑了产品,然后按了两者的“发布”按钮。现在,我可以从示例应用程序中购买两者。
,我收到了ѭ1的回复,并且来自Play Billing Library的此消息:
ProxyBillingActivity:购买了更新后的结果,结果代码为0,帐单的响应代码为:4
事实证明,我忘了访问测试的“选择加入”链接(我仅将测试器添加到alpha测试器列表以及具有许可证测试访问权限的用户列表中)。
,我所知道的:
版本代码与您的应用程序发布站点中未发布的草稿应用程序是否相同?
您是否触摸了恢复出厂设置以测试帐户的数据?
您是否在发布网站上设置了Lemonstorm.huru.full的托管产品?
,以下是有关如何测试应用内结算的简要说明,其中包括一张图表,该图表列出了在应用已发布与未发布以及使用测试用户的情况下,您可以期望从市场应用中看到的内容,开发人员或其他:
http://developer.android.com/guide/market/billing/billing_testing.html
,另外,请记住在导出应用程序时对其进行签名。