无法使用项目 - 无法解析 consumeAsync

Not able to consume item - cannot resolve consumeAsync

我正在按照 google 示例在我的应用中设置应用计费。我已成功集成应用计费 api。但是当我调用 consumeAsync(); Android 工作室说无法解析方法 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);
                                }
                            }                            
                        }
                    };

事实证明这是一个非常愚蠢的错误。

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);