无法将java.util.ArrayList转换为com.android.billingclient.api.sku详细信息

无法将java.util.ArrayList转换为com.android.billingclient.api.sku详细信息,java,android,in-app-purchase,revenuecat,Java,Android,In App Purchase,Revenuecat,我正在尝试对我的应用程序实施Revenuecat。当我尝试购买时,出现以下错误: 无法将java.util.ArrayList强制转换为 com.android.billingclient.api.sku详细信息 在此行中:Purchases.getSharedInstance().purchaseProduct(此,(SkuDetails)skuList,新的MakePurchaseListener(){ 我只想买一个产品。有人能帮我解决这个问题吗?他们的sdk参考在Kotlin。我请求帮助,

我正在尝试对我的应用程序实施Revenuecat。当我尝试购买时,出现以下错误:

无法将java.util.ArrayList强制转换为 com.android.billingclient.api.sku详细信息

在此行中:
Purchases.getSharedInstance().purchaseProduct(此,(SkuDetails)skuList,新的MakePurchaseListener(){

我只想买一个产品。有人能帮我解决这个问题吗?他们的sdk参考在Kotlin。我请求帮助,但他们没有帮助

代码如下:

Show.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

           // relativeLayout.setVisibility(View.VISIBLE);
            List<String> skuList = new ArrayList<>();
            skuList.add(ITEM_S);


            Purchases.getSharedInstance().getNonSubscriptionSkus(skuList, new GetSkusResponseListener() {
                @Override
                public void onReceived(@NonNull List<SkuDetails> skus) {
                    makepurchase(skus);


                }

                @Override
                public void onError(@NonNull PurchasesError error) {

                }
            });






        }

    });




private void makepurchase(List<SkuDetails> skuList){

        Purchases.getSharedInstance().purchaseProduct(this, (SkuDetails) skuList, new MakePurchaseListener() {
            @Override
            public void onCompleted(@NonNull Purchase purchase, @NonNull PurchaserInfo purchaserInfo) {


                Toast.makeText(UserInformation.this,"Purchase complete",Toast.LENGTH_LONG).show();
            }

            @Override
            public void onError(@NonNull PurchasesError error, boolean userCancelled) {

            }
        });
    }
Show.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//relativeLayout.setVisibility(View.VISIBLE);
List skuList=new ArrayList();
skuList.添加(项目);
Purchases.getSharedInstance().getNonSubscriptionSkus(skuList,新的GetSkusResponseListener(){
@凌驾
收到时的公共作废(@非空列表SKU){
商品采购(SKU);
}
@凌驾
public void onError(@NonNull purchaserror error){
}
});
}
});
私人作废makepurchase(清单skuList){
purchaseProduct(此,(SkuDetails)skuList,新的MakePurchaseListener(){
@凌驾
未完成的公共作废(@NonNull Purchase Purchase,@NonNull PurchaserInfo PurchaserInfo){
Toast.makeText(UserInformation.this,“购买完成”,Toast.LENGTH_LONG.show();
}
@凌驾
public void onError(@NonNull purchaserror错误,布尔userCancelled){
}
});
}

首先,在
onReceived
中,您将
List skuList
传递给期望
List
的方法-它应该是:

private void makepurchase(List<SkuDetails> skuList) {
}

首先,在
onReceived
中,您将
List skuList
传递给期望
List
的方法-它应该是:

private void makepurchase(List<SkuDetails> skuList) {
}

检查我的问题我已经添加了错误所在的行。更新了答案,详细说明了如何迭代
skuList
。如果不方便,您需要修改
Purchases.getSharedInstance().purchaseProduct
接受
SkuDetails
产品列表-现在它只接受一个产品。检查我的问题我已经添加了错误所在的行。使用如何迭代
skuList
的详细信息更新了答案。如果不方便,您需要修改
购买。getSharedInstance().purchaseProduct
接受
SkuDetails
产品列表-现在它只接受一个产品。