Android 应用内计费错误:无法购买项目,错误响应:7:项目已拥有

Android 应用内计费错误:无法购买项目,错误响应:7:项目已拥有,android,Android,我是新开发应用程序使用应用程序内计费,我已经实现了它,但一些 倍它给我以下的错误 应用内计费错误:无法购买项目,错误响应:7:项目已拥有 给我一个解决方案你需要在再次购买前消费一件物品 IabHelper mHelper = new IabHelper(ACTIVITY, base64EncodedPublicKey); @Override public void onActivityResult(int requestCode, int resultCode, Intent data) {

我是新开发应用程序使用应用程序内计费,我已经实现了它,但一些 倍它给我以下的错误 应用内计费错误:无法购买项目,错误响应:7:项目已拥有
给我一个解决方案你需要在再次购买前消费一件物品

IabHelper mHelper = new IabHelper(ACTIVITY, base64EncodedPublicKey);

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    // Pass on the activity result to the helper for handling
    if (!mHelper.handleActivityResult(requestCode, resultCode, data)) {
        super.onActivityResult(requestCode, resultCode, data);
    }
    else {
        Log.d(TAG, "onActivityResult handled by IABUtil.");
    }
}

作为中给出的示例项目 我们可以按如下方式消费购买的商品

    // Check for gas delivery -- if we own gas, we should fill up the tank immediately
    Purchase gasPurchase = inventory.getPurchase(SKU_GAS);
    if (gasPurchase != null && verifyDeveloperPayload(gasPurchase)) {
        Log.d(TAG, "We have gas. Consuming it.");
        mHelper.consumeAsync(inventory.getPurchase(SKU_GAS), mConsumeFinishedListener);
        return;
    }

// Called when consumption is complete
IabHelper.OnConsumeFinishedListener mConsumeFinishedListener = new IabHelper.OnConsumeFinishedListener() {
    public void onConsumeFinished(Purchase purchase, IabResult result) {
        Log.d(TAG, "Consumption finished. Purchase: " + purchase + ", result: " + result);

        // if we were disposed of in the meantime, quit.
        if (mHelper == null) return;

        // We know this is the "gas" sku because it's the only one we consume,
        // so we don't check which sku was consumed. If you have more than one
        // sku, you probably should check...
        if (result.isSuccess()) {
            // successfully consumed, so we apply the effects of the item in our
            // game world's logic, which in our case means filling the gas tank a bit
            Log.d(TAG, "Consumption successful. Provisioning.");
            mTank = mTank == TANK_MAX ? TANK_MAX : mTank + 1;
            saveData();
            alert("You filled 1/4 tank. Your tank is now " + String.valueOf(mTank) + "/4 full!");
        }
        else {
            complain("Error while consuming: " + result);
        }
        updateUi();
        setWaitScreen(false);
        Log.d(TAG, "End consumption flow.");
    }
};

希望!!!这对你有帮助。您可以浏览这个示例项目。

mHelper.ConsumeAncy(您的SKU,finishListener);请详细解释我,如果您之前已经实施了消费呼叫,那么您在您的城市中还没有跳过onActivityResult方法。我已经对我的答案进行了编辑,请核对。既然你打过购买电话,还没有打过消费电话。。您必须先显式调用该sku上的consume,才能再次购买..我尝试了onactivityresult,但仍然不起作用…给出相同的错误您知道关于无法购买的错误5-开发者错误>结果开发者错误=5-提供给API的参数无效您可以在给定的艾德利讨厌那些总是否决别人帖子的“专家”。所以我投你们一票,尽管你们的问题还不完整。但我认为任何遇到这种情况的人都应该理解。非常感谢我们的投票