【问题标题】:'Both methods have same erasure, yet neither overides the other' method clash error in SkuDetailsResponseListener()'两种方法都有相同的擦除,但都没有覆盖另一个' SkuDetails Response Listener()中的方法冲突错误
【发布时间】:2020-04-29 14:23:04
【问题描述】:

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

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

【问题讨论】:

    标签: java android in-app-billing onskudetailsresponce


    【解决方案1】:

    这方面的错误消息至少可以说没有帮助。然而,当我碰巧替补时:

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

    【讨论】:

      猜你喜欢
      • 2023-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-09
      • 1970-01-01
      相关资源
      最近更新 更多