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

时间:2011-04-02 09:20:59

标签: android in-app-purchase google-play

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

  • 我首先尝试使用保留的产品ID来测试静态应用内 结算回复。这没有问题。
  • 我向市场上传了一份草稿APK(包含生产签名,没有调试签名),其中包括com.android.vending.BILLING权限。
  • 当我这样做时,我能够将“应用内商品”添加到我在市场上的应用中并将其状态设置为已发布。
  • 我创建了一个测试用户并重置了我的设备,使该测试用户成为我的测试设备上的主要帐户。
  • 保留的产品ID仍然可以使用。

现在出现了问题。当我使用自己的产品ID(我之前添加的产品ID,见上文)时,会显示一个对话框,其中包含以下文字:

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

我在日志中找不到任何奇怪的东西。谁知道我在这里做错了什么?

10 个答案:

答案 0 :(得分:157)

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

答案 1 :(得分:43)

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

所以我建议您在上传APK后等待1到2个小时,然后查看是否仍然出现“应用程序错误”。

答案 2 :(得分:34)

我也遇到了这个问题。我终于意识到我发布的应用程序的版本编码为3,我的草稿(带有结算权限的未发布的apk)的版本编码为4,而我用来测试应用内结算的签名版apk仍然是版本代码3.一旦我将versionCode更改为4,我能够进入我要求的购买的实际应用内商品页面。

答案 3 :(得分:22)

当上传的草稿与测试模式下系统上运行的apk不匹配时,签名,发布的版本可能会发生这种情况。只要确保您的构建版本匹配,您应该在测试模式下正常工作,并且不会再看到错误。

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

答案 4 :(得分:14)

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

我的观察基于一些试验:

  1. 版本代码应与Google Play和设备
  2. 相匹配
  3. 即使版本匹配,我们仍可能会收到此错误
  4. 等待大约1到2小时然后尝试,我们不会收到此错误
  5. 希望这有帮助

答案 5 :(得分: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 产品已发布,其状态设置为有效
  6. 在开发者控制台中添加了测试帐户。
  7. 测试要求:

    1. 测试APK与上传到开发者控制台的版本具有相同的版本
    2. 使用上传到dev.console的相同证书签名测试APK。
    3. 测试帐户(非开发者) - 是设备上的主帐户
    4. P.S:使用发布证书进行调试https://stackoverflow.com/a/15754187/1321401(链接的@dipp}

      P.P.S:已经很长时间才制作这份名单了。

      Thnx @zlgdev用于更新

答案 6 :(得分:6)

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

答案 7 :(得分:0)

如果您收到此错误,我想再分享一个可能的解决方案。我最初上传到google我的apk的草稿并启用了结算权限,因此我能够在app appssables中设置。后来我上传了另一个没有我的AndroidManifest缺少结算权限的apk,导致错误。绝对看起来似乎不太可能,但它发生在我身上,所以它是可能的。

编辑:在同一个折叠中,如果您作为草稿提交给谷歌的版本是未签名的,那么也会出现错误。

答案 8 :(得分:0)

为了投入我的两分钱,我能够通过上传到Beta版本并在设置标签下创建一个带有测试访问权限的Gmail帐户来测试它,并使用我的应用程序的新版本...

我现在正将它转移到生产中......

谢谢! 森

答案 9 :(得分:-2)

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

我安装了一个apk版本的versionCode 1高于商店。在我的Nexus 7上的2个不同帐户上播放它并遇到了这个问题。所以我从商店卸载并重新安装,以确保versionCode匹配。即便等到一夜之间,错误仍未明确。

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