无法将java.util.ArrayList转换为com.android.billingclient.api.sku详细信息
我正在尝试对我的应用程序实施Revenuecat。当我尝试购买时,出现以下错误: 无法将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。我请求帮助,
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
产品列表-现在它只接受一个产品。