簡體   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