14

IABHelperクラスを使用して、アプリ課金v3でAndroidをセットアップし、Googleが提供するサンプルコードに従っています。ほとんどの場合、購入までずっと機能しています(署名済みのapkと実際のクレジットカードの請求があります)。

ただし、今日のテストの過程で、メソッドQueryInventoryFinishedListenerから新しいエラーが発生し始めました。queryInventoryAsync()

IABResult message: "Error refreshing inventory (querying prices of items)"
IABResult response: 5:Developer Error

奇妙なこと #1 は、onIabSetupFinished()コールバックが返された後にこれが発生することです (通常の "Hooray" メッセージと共に)。奇妙なこと 2 は、(launchPurchaseFlow()メソッドを使用して) その後、アプリ内購入を正常に処理できることです。

私が経験しているのと同じ症状に対処するパッチをここで見つけましたが、うまくいきませんでした。

さまざまなデバイスを使ったり、さまざまな Gmail アカウントを使ったり、新しい製品をゼロから構築したりしてみました。正しく実行されていた以前のバージョンのアプリでもエラーが発生しました (何?!)。

私の質問はIABHelper、セットアップが成功したことを確認した後でも、製品在庫を照会できないのはなぜですか? このエラーの原因は何ですか?どうすれば修正できますか?

洞察をありがとう。

アップデート

テストしていたアカウントを捨てて、新しいアカウントに切り替えることで、インベントリ クエリ トランザクションを再び機能させることができました。コードの変更はありません。

私の暫定的な結論は、私が使用していたユーザー アカウントで何かが破損したということです (?)。テスト中、私はさまざまなアプリ内製品を大量に購入してかなりの打撃を受けましたが、何が起こったのかを突き止め、これがユーザーに起こらないようにする必要があります。

これについて何か経験があれば教えてください。ありがとう!

4

4 に答える 4

20

テストモードのアプリの 1 つで同じ問題が発生しました。後で、Google Play ストア アプリのキャッシュをクリアする必要があることがわかりました。

だからあなたはこれを試すことができます -

  1. デバイスの [設定] メニューに移動します。
  2. Applications に移動します (Application Manager というラベルが付いている場合もあります)。
  3. [すべてのアプリケーション] に移動します。
  4. Google Play ストア アプリを検索して開きます。それをタップすると、アプリケーションの設定が表示されます
  5. データの消去とキャッシュの消去をタップします。

アプリに戻り、在庫を読み込んでみます。それは私たちの問題を解決しました。

于 2014-03-08T14:13:07.090 に答える
0

このログにも同じ問題があります:

"InAppBillingManager.getSkuDetails: Input Error: skusBundle array associated with key ITEM_ID_LIST cannot contain more than 20 items."

このメモは IInAppBillingService.aidl ファイルに記載されていました。メソッドのドキュメントを参照してくださいgetSkuDetails(..)

毎回20項目ごとに同じ工程を作る必要があるので、

于 2015-06-02T09:42:11.323 に答える