18

私はまったく同じ問題に直面しています

アプリ内課金 v3 は、ネットワーク接続なしで、または飛行機/フライト モードでアイテムをクエリできません

常に発生するとは限りません。電話を機内モードに切り替えるか、wifi をオフにして、数時間待つ必要があります。問題が発生するだけです。以下のエラーメッセージが表示されます。

Iventory のクエリに失敗しました: IabResult: Iventory の更新エラー (アイテムの価格のクエリ)。(応答: 6:エラー)

著者は使用を提案しました

List<String> skulist = new ArrayList<String>();
skulist.add("my_sku_name1");
skulist.add("my_sku_name2");
mHelper.queryInventoryAsync(true, skulist, mGotInventoryListener);

この問題を解決するために。

しかし、それは私にはうまくいきません。同じ問題がまだ発生します。

この問題の回避策はありますか? ありがとう。

4

2 に答える 2

8

Jerry がコメントで示唆したように、これを回避するには、

mHelper.queryInventoryAsync(false, mGotInventoryListener);

それ以外の

mHelper.queryInventoryAsync(mGotInventoryListener);

デバイスからのすべてのネットワーク接続を (1 日以上) 無効にしており、その 1 つのパラメーター変更で問題を確実に再現/修正できます。購入自体は、アプリ内課金サービスによって、価格などの SKU の詳細よりも長く (無期限に?) キャッシュされるようです。

于 2014-02-03T23:01:44.153 に答える
3

Google Play でキャッシュされたインベントリ アイテムの有効期限が切れているようです。これは、Google Play アプリがどのように機能するかの実装の詳細である可能性があります。

エラー 6 は、BILLING_RESPONSE_RESULT_ERROR として定義されます。

インターネットに接続していなくても購入できる在庫を提供することが重要な場合は、最後に返された結果を自分でキャッシュし、クエリが失敗した場合にそれらを使用する必要がある場合があります。

ただし、そのようなシナリオでは購入も機能しないため、わざわざする必要はありません。

于 2013-06-24T06:12:50.783 に答える