在App Billling OutOfBoundException中

时间:2017-12-13 19:12:42

标签: android in-app-billing

嘿,如果我想为我的inAppPurchase启动BillingFlow,它会引发异常:ArrayOutOfBound。在第6行,它被抛出,但是这个列表不能为null,因为我已经在此列表的参数之前设置了。所以有人知道为什么通过调用“skuDetailsList.get(0)”抛出这个异常?

List<String> skuList = new ArrayList<> ();
        skuList.add("premium_upgrade");
        SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder();
        params.setSkusList(skuList).setType(BillingClient.SkuType.INAPP);
        mBillingClient.querySkuDetailsAsync(params.build(),(responseCode,skuDetailsList) -> {
            SkuDetails skuDetails = skuDetailsList.get(0);
            String sku = skuDetails.getSku();
            BillingFlowParams.Builder builder = BillingFlowParams.newBuilder().setSku(sku).setType(BillingClient.SkuType.INAPP);
            mBillingClient.launchBillingFlow(this,builder.build());
                });

1 个答案:

答案 0 :(得分:0)

ArrayOutOfBoundException表示您正在尝试访问超出阵列范围的数据。因为,你在第skuDetailsList.get(0)行获得和执行,表示列表{0}中的位置0没有数据

请尝试调试代码并检查您是否在skuDetailsList

中获得了适当的结果