【问题标题】:Not able to consume item - cannot resolve consumeAsync无法使用项目 - 无法解析 consumeAsync
【发布时间】:2017-08-14 00:52:22
【问题描述】:

我正在按照 google 示例在我的应用中设置应用计费。我已成功集成到应用计费 api 中。但是当我打电话给consumeAsync(); Android studio 说无法解析方法consumeAsync

mHelper = new IabHelper(this, base64EncodedPublicKey);
        mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
            public void onIabSetupFinished(IabResult result) {
                if (!result.isSuccess()) {
                    // Oh no, there was a problem.
                    Log.d("BillingAPI", "Problem setting up In-app Billing: " + result);
                } else {

                    IabHelper.QueryInventoryFinishedListener
                            mQueryFinishedListener = new IabHelper.QueryInventoryFinishedListener() {
                        public void onQueryInventoryFinished(IabResult result, Inventory inventory) {
                            if (result.isFailure()) {
                                // handle error
                                return;
                            } else {                                
                                boolean isPurchased = inventory.hasPurchase(REMOVE_ADS);
                                Log.d("Is this app owned?", isPurchased + "");

                                IabHelper.OnConsumeFinishedListener mConsumeFinishedListener = new IabHelper.OnConsumeFinishedListener() {

                                    @Override
                                    public void onConsumeFinished(Purchase purchase, IabResult result) {
                                        if (result.isSuccess()) {
                                            // Purchase consumed.
                                        } else {
                                            // Purchase not consumed.
                                        }
                                    }
                                };

                                if (isPurchased) {
                                    mHelper.consumeAsync(isPurchased, mConsumeFinishedListener);
                                }
                            }                            
                        }
                    };

【问题讨论】:

    标签: java android in-app-billing


    【解决方案1】:

    原来这是一个非常愚蠢的错误。

    consumeAsync 期望它的第一个参数是 Purchase 我正在传递一个 boolean

    而不是这样做

    boolean isPurchased = inventory.hasPurchase(REMOVE_ADS);
    mHelper.consumeAsync(isPurchased, mConsumeFinishedListener);
    

    我需要使用getPurchase 而不是hasPurchase

    Purchase purchaseInfo = inventory.getPurchase(REMOVE_ADS);
    mHelper.consumeAsync(purchaseInfo, mConsumeFinishedListener);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-08
      • 1970-01-01
      • 1970-01-01
      • 2022-09-28
      • 1970-01-01
      • 1970-01-01
      • 2019-06-11
      相关资源
      最近更新 更多