web-dev-qa-db-ja.com

Android Play Billing Library:onSkuDetailsResponse responseCodeは0ですが、skuDetailsListのサイズも0です

現在、新しいPlay BillingLibraryを使用しています

基本的に、私はドキュメントに従って、購入可能なアイテムを照会しました

 SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder();
            params.setSkusList(skuList).setType(itemType);
            mBillingClient.querySkuDetailsAsync(params.build(),
                    new SkuDetailsResponseListener() {

                        @Override
                        public void onSkuDetailsResponse(int responseCode,
                                                         List<SkuDetails> skuDetailsList) {
                            listener.onSkuDetailsResponse(responseCode, skuDetailsList);
                        }

ただし、responseCodeは0であり、リストも空です。しかし、onBillingSetupFinishedが成功したことを確認しました。 SkuDetailsParams.Builderに提供されたskuListは空ではなく、skuList内の値(sku_id)もGooglePlayコンソールで指定された製品IDと同じです。

誰かが理由を知っていますか?ありがとう!

12
TheOska

GooglePlayコンソールの設定に問題があるようです。

次のことを確認してください。

  • アプリはPlayコンソールで公開されています(PRODに、または@gmailアカウントはユーザーのアルファ/ベータグループにあります)
  • 正しい署名があり、テストアプリのバージョンコードは公開されているものと同じです
  • すべてのSKUも公開されます
  • playストアアプリは、テストしている電話で正しく機能します(たとえば、アプリを購入できます)

そして、セットアップが完了した後、しばらく待ちます。

7
goRGon

APKをアップロードする必要はありません。

Skusを取得する必要があります。 BillingClientは、デバッグモードでテストしても機能するはずです。

製品またはサブスクリプションがアクティブであることを確認してください。

しばらくお待ちください。請求プロセスで商品が更新されるまで、数時間かかる場合があります。

1
live-love

私も同じ問題を抱えていましたが、次のようにしてSkuDetailsを取得しました。

  • GooglePlayアプリを停止します
  • GooglePlayアプリのキャッシュを削除する
  • アプリケーションを停止して開始します
0
Men Taka

私はこの問題に数時間を費やしましたが、問題はデバッグビルド/ CIビルドにapplicationIdSuffixがあったことでした。したがって、適切なapplicationIdを使用した本番ビルドのみが製品を取得できました。

0
hrach

これは、アプリ内購入が利用できない国(キューバ、中国など)のユーザーにも発生する可能性があります。

PlayコンソールのPricing & distributionセクションで国のステータスを確認してください

0
user5480949

以前の回答に加えて、インターネット接続なしで検索を実行すると、SkuDetailsListが空になる可能性があります。したがって、コードでもその状況を管理する必要があります。

0
Pablo Alfonso

アプリはGooglePlayストアで承認される必要があります。これには最大1週間かかる場合があります

0
Josef Vancura