当我试图运行我的应用程序内计费我得到的错误:“这个版本的应用程序没有配置通过谷歌播放计费。查看帮助中心获取更多信息”。

我已经在Manifest文件中有计费权限,我有一个签名的。apk作为草稿上传到谷歌Play上,我也已经在我的手机上安装了相同的签名apk。

有什么帮助可以解决这个问题吗?


当前回答

这个错误可能是由几个原因引起的。

以下是谷歌IAB测试的要求列表。

先决条件:

AndroidManifest must include "com.android.vending.BILLING" permission. APK is built in release mode. APK is signed with the release certificate(s). (Important: with "App Signing by Google Play" it only works if you download directly from GooglePlayStore!) APK is uploaded to alpha/beta distribution channel (previously - as a draft) to the developer console at least once. (takes some time ~2h-24h). IAB products are published and their status set to active. Test account(s) is added in developer console.

测试要求:

测试APK的versionCode与上传到开发人员控制台的版本相同。 测试APK使用与上传到dev.console的证书相同的证书进行签名。 测试帐户(不是开发人员)-是设备上的主要帐户。(根据@MinosL的评论,主账号可能不需要) 测试帐户被选择为测试人员,并与有效的支付方式相链接。(@Kyone)

p.s.:发布证书调试:https://stackoverflow.com/a/15754187/1321401(链接为Thnx @dipp)

p.p.s.:很久以前就想列这个清单了。

@zlgdev, @Kyone, @MinosL更新

其他回答

在我的情况下,由于安装的apk和上传到市场的apk的签名不同,我看到了相同的消息。

你需要用你的实际证书签署APK。然后将其安装到测试设备上。然后您可以测试InAppBilling。如果您正在通过eclipse直接运行到设备(在调试模式下)来测试应用程序,那么您将得到这个错误。

如果你使用android.test. bought作为SKU,它会一直工作,但是在你的最终响应中不会有developerPayload。

如果你使用的是你自己的应用项目草稿,你可以一直测试,但你会被收费,所以之后你必须自己退款。

您不能使用用于谷歌游戏开发控制台的相同gmail帐户购买物品。

解决方案

在play store上传应用后请稍等,因为谷歌需要一段时间来更新应用版本。它会起作用的!

我也遇到了同样的问题,在我读到DZDomi的帖子之前,问题没有解决。突然发现在谷歌开发人员控制台中有一个设置需要启用。在“In app purchases”部分,你的产品有一行,最右边是它的状态。它应该是活跃的!

最近谷歌对他们的系统进行了更改,因为你已经上传了至少一个APK到你的控制台,你可以用你的应用程序测试你的应用内请求,使用任何版本代码/号码。

交叉参考LINK

配置gradle为调试版本签名。

android {
    ...
    defaultConfig { ... }
    signingConfigs {
        release {
            storeFile file("my-release-key.jks")
            storePassword "password"
            keyAlias "my-alias"
            keyPassword "password"
        }
    }
    buildTypes {
        debug {
            signingConfig signingConfigs.release
            ...
        }
    }
}