使用IabHelper时无法绑定InAppBillingService

时间:2017-05-26 03:59:22

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

我目前正在开发游戏,并尝试实施Google Play的应用内结算V3。我按照了应用内应用示例并使用了BigDecimal。但是,在设备中运行应用程序时出现问题。我发现在value之后,IabHelpermHelper.startSetup都没有被调用。所以我在IabHelper类中打印了onServiceDisconnected的结果。结果是onServiceConnected

这是我的代码:

mContext.bindService(serviceIntent, mServiceConn, Context.BIND_AUTO_CREATE);

在IabHelper Class的方法false中:

private IabHelper mHelper;

// MainActivity onCreate
protected void onCreate(Bundle savedInstanceState){
    // ...
    mHelper = new IabHelper(this, base64EncodedPublicKey);
    mHelper.enableDebugLogging(true);
    mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
        public void onIabSetupFinished(IabResult result) {
            if (!result.isSuccess()) {
                return;
            }

            if (mHelper == null) return;
        }
    });
}

我不知道这个问题。我做了:

  • 添加权限:com.android.vending.BILLING
  • 将.aidl文件从示例复制到/ src / com / android / vending / billing
  • 我的android目标设置为android-22

任何想法有什么不对? 提前谢谢。

3 个答案:

答案 0 :(得分:1)

最后,我通过将最新版本的游戏上传到开发者控制台并调试最新的apk来解决它。问题消失了。希望这有助于某人。

答案 1 :(得分:0)

从项目" Trivial" 复制util文件夹中的所有课程 或者您可以将整个 Util 包复制到您的项目中。然后尝试一下。

答案 2 :(得分:0)

我遇到了这个问题,并发现了

  1. 调试的应用版本必须与开发者控制台中发布的版本相同。
  2. 播放服务需要可用,有些手机可能会在屏幕锁定后实际终止服务,启动Play商店,然后重做绑定工作。
  3. 使用IabHelper开箱即用可能会导致服务断开未处理等问题,重新初始化失败,我不得不稍微修改一下。