«Оба метода имеют одно и то же стирание, но ни один из них не переопределяет» метод cla sh error в SkuDetailsResponseListener () - PullRequest
1 голос
/ 12 января 2020

Я пытаюсь реализовать новую реализацию биллинга inapp, поскольку реализация тривиального накопителя 2, похоже, перестала поддерживать. Следующий код для создания моей карты mSkuDetails дает мне странный метод cla sh error. Копируется прямо из документов, за исключением строки вставки карты.

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

enter image description here

enter image description here

1 Ответ

1 голос
/ 14 января 2020

Сообщения об ошибках на этом не были полезны по меньшей мере. Однако, когда мне довелось подставить:

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
                                }
                            }
                        }
                    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...