SkuDetailsResponseListener()中的“两种方法具有相同的擦除,但没有一个覆盖另一个" [英] 'Both methods have same erasure, yet neither overides the other' method clash error in SkuDetailsResponseListener()

查看:136
本文介绍了SkuDetailsResponseListener()中的“两种方法具有相同的擦除,但没有一个覆盖另一个"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试实施新的inapp计费实施,因为琐碎的drive 2实施似乎已放弃了支持.以下代码创建了我的mSkuDetails映射,这给了我一个奇怪的方法冲突错误.它是直接从文档中复制的,但地图插入行除外.

I'm attempting to implement the new inapp billing implementation as the trivial drive 2 implementation appears to have dropped support. The following code to create my mSkuDetails map gives me an odd method clash error. It's copied right from the docs except for the Map insertion line.

 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
                                    }
                                }
                            }
                        });

推荐答案

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

The error messages on this weren't helpful to say the least. However, when I happened to substititute:

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

对于'SkuDetails'的每个实例,这些错误代码之类的怪异错误都被神奇地清除了.还要在每个购买"实例之前添加前缀:

for every instance of 'SkuDetails', weird errors like the ones in this code piece magically cleared up. Also adding the prefix before every instance of 'Purchase':

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

修复了其他类似错误.

以下是工作代码,其中有两个替换:

Here is the working code with two substitutions:

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
                                }
                            }
                        }
                    });

这篇关于SkuDetailsResponseListener()中的“两种方法具有相同的擦除,但没有一个覆盖另一个"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆