首页 文章

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

提问于
浏览
90

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

  • 我首先尝试使用保留的产品ID来测试静态应用内结算响应 . 这没有问题 .

  • 我向市场上传了一份草稿APK(带有 生产环境 签名,没有调试签名),其中包括com.android.vending.BILLING权限 .

  • 当我这样做时,我能够在市场上为我的应用添加'In-app Products'并将其状态设置为已发布 .

  • 我创建了一个测试用户并重置了我的设备,使该测试用户成为我的测试设备上的主要帐户 .

  • 保留的产品ID仍然有效 .

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

Application Error : This version of the application is not configured for Market Billing. Check the help center for more information.

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

10 回答

  • 0

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

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

  • 22

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

  • 7

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

  • 43

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

    这里最大的担心是我们在这里添加了一个错误:http://code.google.com/p/marketbilling/issues/detail?id=15#c0

  • 14

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

    我的观察基于一些试验:

    • 版本代码应与Google Play和设备上的版本代码相匹配

    • 即使版本匹配,我们仍可能会收到此错误

    • 等待大约1到2小时然后尝试,我们 will not 得到此错误

    希望这可以帮助

  • -2

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

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

    先决条件:

    • AndroidManifest必须包含 "com.android.vending.BILLING" permission .

    • APK内置于 release mode .

    • APK使用 release certificate(s) 签名 .

    • APK上传到 alfa/beta distribution Channels (之前 - 作为草稿)至少一次到开发者控制台 . (需要一些时间 ~2h-24h ) .

    • IAB products are published 并将其状态设置为 active .

    • Test account(s) is added 在开发者控制台中 .

    测试要求:

    • 测试APK将 same versionCode 作为上传到开发者控制台的那个 .

    • 测试APK使用 same certificate(s) 签名,作为上传到dev.console的一个 .

    • Test account (非开发人员) - 是设备上的 main account .

    P.S: Debugging with release certificatehttps://stackoverflow.com/a/15754187/1321401(链接的Thnx @dipp

    P.P.S:已经有很长一段时间了 .

    Thnx @zlgdev进行更新

  • 34

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

  • 6

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

    编辑:沿着相同的折叠,如果您作为草稿提交到谷歌的版本是未签名的,则也会发生错误 .

  • 0

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

    我现在正把它转移到 生产环境 中......

    谢谢!弥敦道

  • 157

    老线程,但添加我的经验......

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

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

相关问题