В приложении не работает биллинг в версии с ранним доступом и ошибка в приложении отладки. Как решить? - PullRequest
0 голосов
/ 14 марта 2020

Я реализовал в приложении биллинг в своем проекте. Когда я тестирую в отладочной версии apk, которую я установил прямо из Android studio, то появляется эта ошибка:

enter image description here

И после этого я установил apk из консоли Google Play из ранней версии, а затем, когда я запускаю, в биллинге приложения ничего не происходит. Даже это в приложении биллинга Bottom Sheet не идет. (Я думаю, что размер skuDetailsList приближается к 0)

Я использовал этот код:

billingClient = BillingClient.newBuilder(mActivity).enablePendingPurchases().setListener(this).build();

    billingClient.startConnection(new BillingClientStateListener() {
        @Override
        public void onBillingSetupFinished(BillingResult billingResult) {
            if (billingResult.getResponseCode() ==  BillingClient.BillingResponseCode.OK) {

                Log.v("billingConnection","ready");
                startInAppBilling();
            }
        }
        @Override
        public void onBillingServiceDisconnected() {

            Log.v("billingConnection","disconnected");
            // Google Play by calling the startConnection() method.
        }
    });

И вот я запускаю поток

    private void startInAppBilling() {

    List<String> skuList = new ArrayList<> ();
    skuList.add(AppConstants.PRODUCT_ID); // product id is which you added on play store console
    SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder();
    params.setSkusList(skuList).setType(BillingClient.SkuType.SUBS);
    billingClient.querySkuDetailsAsync(params.build(),
            new SkuDetailsResponseListener() {
                @Override
                public void onSkuDetailsResponse(BillingResult billingResult,
                                                 List<SkuDetails> skuDetailsList) {
                    Log.v("querySkuDetailsAsync",billingResult.getResponseCode()+"   "+billingResult.getDebugMessage());

                    Log.v("skuDetailsListSize", String.valueOf(skuDetailsList.size()));

                    if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
                        for (SkuDetails skuDetails : skuDetailsList) {
                            String sku = skuDetails.getSku();
                            String price = skuDetails.getPrice();

                            if (AppConstants.PRODUCT_ID.equals(sku)) {
                                //premiumUpgradePrice = price;
                                // Retrieve a value for "skuDetails" by calling querySkuDetailsAsync().
                                BillingFlowParams flowParams = BillingFlowParams.newBuilder()
                                        .setSkuDetails(skuDetails)
                                        .build();
                                billingClient.launchBillingFlow(mActivity,flowParams);
                            }
                        }
                    }
                    else {
                        Log.v("querySkuDetailsAsync1",billingResult.getResponseCode()+"   "+billingResult.getDebugMessage());
                    }

                }
            });

}

Пожалуйста, помогите мне через это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...