繁体   English   中英

SkuDetailsResponseListener() 中的“两种方法都具有相同的擦除功能,但都不会覆盖另一个”方法冲突错误

[英]'Both methods have same erasure, yet neither overides the other' method clash error in SkuDetailsResponseListener()

我正在尝试实施新的应用内计费实施,因为普通驱动器 2 实施似乎已放弃支持。 以下用于创建我的 mSkuDetails 映射的代码给了我一个奇怪的方法冲突错误。 除了 Map 插入行之外,它是从文档中直接复制的。

 List<String> skuList = new ArrayList<> ();
 skuList.add("item1");
 skuList.add("item2");
 SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder();
 params.setSkusList(skuList).setType(BillingClient.SkuType.INAPP);
 billingClient.querySkuDetailsAsync(params.build(),
                        new SkuDetailsResponseListener() {
                            @Override
                            public void onSkuDetailsResponse(BillingResult billingResult,
                                                             List<SkuDetails> skuDetailsList) {
                                if (billingResult.getResponseCode() == 
                                    BillingClient.BillingResponseCode.OK && skuDetailsList != null) {
                                    for (SkuDetails skuDetails : skuDetailsList) {
                                        mSkuDetailsMap.put(skuDetails.getSku(), skuDetails);//will use this for purchase calls
                                    }
                                }
                            }
                        });

在此处输入图片说明

在此处输入图片说明

至少可以说,关于此的错误消息没有帮助。 但是,当我碰巧替换时:

com.android.billingclient.api.SkuDetails//add prefix 'com.android.billingclient.api.'

对于“SkuDetails”的每个实例,像这段代码中的那些奇怪的错误都神奇地清除了。 还要在“购买”的每个实例之前添加前缀:

com.android.billingclient.api.Purchase//also add prefix before Purchase

修复了其他类似的错误。

这是带有两个替换的工作代码:

List<String> skuList = new ArrayList<> ();
skuList.add("item1");
skuList.add("item2");
SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder();
params.setSkusList(skuList).setType(BillingClient.SkuType.INAPP);
billingClient.querySkuDetailsAsync(params.build(),
                    new SkuDetailsResponseListener() {
                        @Override
                        public void onSkuDetailsResponse(BillingResult billingResult,
                                                         List<com.android.billingclient.api.SkuDetails> skuDetailsList) {
                            if (billingResult.getResponseCode() == 
                                BillingClient.BillingResponseCode.OK && skuDetailsList != null) {
                                for (com.android.billingclient.api.SkuDetails skuDetails : skuDetailsList) {
                                    mSkuDetailsMap.put(skuDetails.getSku(), skuDetails);//will use this for purchase calls
                                }
                            }
                        }
                    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM