无法使用项目 - 无法解析 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);
我正在按照 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);