首页 > 解决方案 > “没有列出 SKU,无法加载它们” - solovyev.android:checkout

问题描述

我有一个应用程序内购买的应用程序,但是当我尝试获取项目列表时,我收到错误:

原因:org.solovyev.android.checkout.Check$AssertionException:没有列出 SKU,无法加载它们

InAppPurchase.java:

import android.app.Application;

import org.solovyev.android.checkout.Billing;

public class InAppPurchase extends Application {
    private static InAppPurchase sInstance;
    String key = "xxx";
    public void onCreate() {
        super.onCreate();
    }

    private final Billing mBilling = new Billing(this, new Billing.DefaultConfiguration() {
        @Override public String getPublicKey() {
            return key;
        }
    });

    public InAppPurchase() {
        sInstance = this;
    }

    public static InAppPurchase get() {
        return sInstance;
    }

    public Billing getBilling() {
        return mBilling;
    }
}

设置.java:

@Override
    protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_settings);
...

 mCheckout = Checkout.forActivity(this, InAppPurchase.get().getBilling());
        mCheckout.start();
        mCheckout.createPurchaseFlow(new PurchaseListener());
        Inventory mInventory = mCheckout.makeInventory();
        mInventory.load(
                Inventory.Request.create().loadAllPurchases().loadSkus(ProductTypes.IN_APP),
                new InventoryCallback());
...
}

private class InventoryCallback implements Inventory.Callback {
        @Override public void onLoaded(@Nonnull Inventory.Products products) {
            final Inventory.Product product = products.get(ProductTypes.IN_APP);
            if (!product.supported) {
                Toast.makeText(Settings.this, "error supported", Toast.LENGTH_LONG).show();
                return;
            }
            List<Purchase> list = product.getPurchases();
                if (product.getSku("dark_theme") != null) {
                    String price = product.getSku("dark_theme").price;
                    Toast.makeText(Settings.this, price, Toast.LENGTH_LONG).show();

                }
            }
        }

和错误

未列出 SKU,无法加载

正在排队显示

Inventory.Request.create().loadAllPurchases().loadSkus(ProductTypes.IN_APP)

应用在 Alpha-section n Google Dev Console 中发布。

请帮我修复它。

标签: javaandroidin-app-purchase

解决方案


尝试提供一个 Sku id,你要检索

mInventory.load(Inventory.Request.create().loadAllPurchases().loadSkus(ProductTypes.IN_APP),"<your Google Play product Id>",
            new InventoryCallback());

推荐阅读