应用程序错误:此版本的应用程序未配置为市场计费


91

几天以来,就可以在Android应用中使用应用内结算。当然很酷。因此,我开始为我的应用程序进行更新以实现此目的。但是现在我遇到了一些问题。这就是我所做的:

  • 我首先尝试使用保留的产品ID来测试静态应用内结算响应。那没有问题。
  • 我将一个草稿APK上传到了市场(带有生产签名,没有调试签名),其中包括com.android.vending.BILLING权限。
  • 完成此操作后,我便可以在市场上的应用程序中添加“应用内商品”,并将其状态设置为“已发布”。
  • 我创建了一个测试用户并重置了设备,以使该测试用户成为测试设备上的主要帐户。
  • 保留的产品ID仍然有效。

现在出现了问题。当我使用自己的产品ID(我之前添加的产品ID,请参见上文)时,将显示一个带有以下文本的对话框:

应用程序错误:此版本的应用程序未针对市场结算进行配置。请查看帮助中心以获取更多信息。

我在日志中找不到任何奇怪的东西。有人知道我在做什么错吗?

Answers:


157

我刚遇到此问题,并意识到这是因为我正在运行应用程序的调试,未签名版本。在Eclipse中,当我导出并签名应用程序并将其安装在手机上时,我能够使用我的应用程序内产品而不会看到此错误消息。


8
调试版本还可以,但必须对其进行签名。
巴里·弗鲁特曼

1
发布用于测试inApp项目的应用程序是否必要?我已经发布了inapp项目,但未发布该应用。我很抱歉这个问题是愚蠢的还是无关的。
Jana'2

@ jana否不需要发布应用程序以在应用程序中进行测试,但是是的,有必要发布要发布的应用程序内产品,否则,在测试应用程序内产品“找不到项目时,您的设备上将出现错误“
Usman Kurd

21
与其他一些答案一样,请务必注意-测试应用的版本代码必须与Google Play中草稿的版本代码相同。因此,如果您从Google Play中的占位符v1开始,然后将真实应用程序准备为v2,则该真实应用程序必须先作为草稿上载到GP,然后才能完成测试。
史蒂夫·哈利

1
情况最近发生了变化,现在您需要将应用发布到Google Play的Alpha频道上,然后才能继续进行IAP测试。
tenpn

43

我发现,一旦我将APK的新副本上载到市场,然后在接下来的一个小时左右的时间里,我就会遇到该“应用程序错误”。至少经过一个小时(有时最多需要两个小时)之后,我不再遇到该错误,因此我可以毫无问题地购买我的物品。Google服务器似乎至少需要一个小时来处理您已经上传了新APK的事实(关于APK的InApp Billing方面)。

因此,我的建议是让您在上传APK后等待1-2个小时,然后查看是否仍然收到“应用程序错误”。


我只是想再次确认这个答案对我有用。我收到此错误-即使应用程序版本正确。除了等待几个小时外,我什么也没做,并且它开始正常工作(我再也没有看到错误)。
Booger 2012年

4
我将第二个观点:这对我来说还可以等待几个小时(实际上是一夜之间等待,所以我不知道确切的时间)。作为一篇小的社论评论,令人沮丧的是Google无法为此提供更准确的错误消息,从而为我们节省了很多麻烦。
M Katz 2012年

这是否意味着我的应用程序版本比当前版本旧,无法使用应用程序内购买功能,而必须先更新应用程序?
Kedu 2014年

34

我也遇到了这个问题。我终于意识到我发布的应用程序的versionCode为3,我的草稿(未经帐单许可的未发布apk)的versionCode为4,而我用来测试应用内帐单的已签名apk仍为versionCode 3。将versionCode更改为4,就可以进入我所请求购买的实际应用内商品页面。


22

当作为草稿上传的apk与在测试模式下在系统上运行的apk不匹配时,这可能会在已签名的已发布版本中发生。只需确保您的构建匹配,就可以在测试模式下正常运行,并且将停止看到错误。

这里最令人担心的是,我们将在生产环境中看到相同的行为,即,我们使用应用内结算发布1.0.0-1,然后我们发布1.0.0-2,而运行1.0.0-1的用户将无法购买或恢复购买,将收到相同的错误(非常糟糕的用户体验)。一直在搜寻文档,以提及此行为是特定于测试模式的,但到目前为止还没有运气。我们在此处添加了一个错误:http : //code.google.com/p/marketbilling/issues/detail?id=15#c0


3
+1可获取其他信息,前瞻性思维以及与bug线程的链接。
Bill The Ape 2012年

14

我也遇到了同样的问题...但是现在问题解决了

我的观察基于几次试验:

  1. 版本代码应在Google Play和设备上均匹配
  2. 即使版本匹配,我们仍然可能会出现此错误
  3. 等待约1至2个小时,然后尝试,我们将不会出现此错误

希望这可以帮助


1
我还发现版本代码应该匹配。至少您的测试版本不能高于Google Play上的版本。我不确定其他方法是否正确。我希望不会,因为那将意味着拥有较旧版本应用程序的人无法使用我的应用程序内结算功能。
Peter Fortuin 2012年

#3是诀窍。如果您确定一切正常,请稍事休息,然后再尝试。它只需要一些时间即可更新:)
nuala 2012年

7

从重复的问题中复制:https : //stackoverflow.com/a/22469253/1321401

由于多种原因,可能会发生此错误。
以下是Google IAB测试的要求列表。

先决条件:

  1. AndroidManifest必须包含“ com.android.vending.BILLING”权限
  2. APK是在发布模式下构建的。
  3. APK已使用发行证书签名。
  4. APK 至少一次上传到alfa / beta分发渠道(以前是草稿)到开发者控制台。(大约需要2h-24h的时间)。
  5. IAB 产品已发布,其状态设置为active
  6. 测试帐户已添加到开发者控制台中。

测试要求:

  1. 测试APK的版本代码与上传到开发者控制台的版本代码相同
  2. 测试APK用与上载到dev.console的证书相同的证书签名。
  3. 测试帐户(不是开发人员)-是设备上的主要帐户

PS:使用发行证书进行调试https : //stackoverflow.com/a/15754187/1321401(链接为Thnx @dipp

PPS:已经很长一段时间要列出此清单。

Thnx @zlgdev更新


1
versionCode吸引了我-为什么需要这样做?
老虎机

5

我的解决方案是我需要使用相同的密钥在Market(如草稿APK)和测试中对apk进行签名。因此,我不仅要运行应用程序,还必须随每次更新导出签名的APK,然后使用apk命令行命令将其卸载并重新安装到设备中。原则上,您也可以将自己的密钥库用作调试密钥库,但是它需要使用特定的硬编码密码和密钥名称。


0

以为如果您遇到此错误,我会分享一个可能的解决方案。我最初是在启用了结算权限的情况下将apk的草稿上载到google的,因此我可以在应用程序购买中进行设置。后来,我又上传了一个APK,而我的AndroidManifest没有缺少结算权限,这导致了错误。绝对看来这是一个不太可能的案例,但对我而言确实如此,因此有可能。

编辑:同样,如果您作为草稿提交给Google的版本未签名,也会发生该错误。


0

要投入两分钱,我可以通过上传到Beta版本并使用我的新版本应用程序在“设置”标签下创建一个具有测试访问权限的Gmail帐户来对其进行测试...

我现在将其投入生产...

谢谢!内森


-2

旧线程,但增加了我的经验...

我安装的APK版本高于商店中的versionCode 1。在我的Nexus 7上的2个不同帐户上播放了该文件,并遇到了此问题。所以我从商店中卸载并重新安装,以确保versionCode匹配。即使等待了一夜,错误也无法清除。

原来,我需要从与Nexus 7绑定的所有3个Google帐户中卸载。当我从nexus 7上的所有3个帐户中明确卸载该应用程序,然后从商店中重新安装时,它可以恢复。

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.