2013-05-02 22 views
14

我一直使用IABHelper類和Google關於example code來設置應用結算v3中的Android。我主要通過購買(通過簽名apk和真正的信用卡收費)一路工作。Android IAB:「刷新廣告資源時發生錯誤(查詢商品價格)」開發者錯誤

然而,在今天的測試過程中,我開始從queryInventoryAsync()方法得到一個新的錯誤在我QueryInventoryFinishedListener

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

奇怪的#1是這個onIabSetupFinished()回調後,發生(與習慣性的「Hooray」消息)。奇怪的事情#2是,我可以隨後&成功處理應用程序內購買(使用launchPurchaseFlow()方法)。

我發現了一個補丁here,它解決了我遇到的相同症狀,但它對我無效。

我試過使用不同的設備,使用不同的Gmail帳戶,並從頭開始構建新產品。我甚至在正確運行的應用程序的早期版本上發生錯誤(什麼?!)。

我的問題是:爲什麼我不能查詢產品庫存,即使在IABHelper已確認設置成功後?什麼可能導致這個錯誤,我該如何解決它?

謝謝你的任何見解。

UPDATE

我能得到庫存查詢交易被拋棄我與測試賬號,並切換到一個新的帳戶再次合作。沒有代碼改變。

我的臨時結論是,某些東西在我使用的用戶帳戶(?)中被損壞。在測試過程中,我通過大量購買不同的應用內產品而非常困難 - 但我仍然需要了解發生了什麼,並確保這不會發生在我的任何用戶身上。

請讓我知道你是否有這方面的經驗。謝謝!

+0

我遇到了同樣的問題與在-25應用程序的應用程序。我還沒有嘗試切換到不同的用戶帳戶,但仍然無法提供解決方案,因爲它也可能發生在其他用戶身上。你有這方面的更新嗎? – 2013-05-30 08:42:58

+0

@ gcl1我有同樣的問題。你的問題解決了嗎? – glo 2013-12-04 05:48:26

回答

13

我發現通過試驗和錯誤,如果你一次查詢超過20個項目,它會失敗,這個錯誤。

我爲IabHelper.java提交了一個補丁,它將SKU列表分割成20個項目的數據包並進行查詢。

你能在那裏抓住它:https://code.google.com/p/marketbilling/issues/detail?id=123

+0

拆分確實解決了我查詢大型產品列表的問題。在我的情況下,限制是22項。該錯誤是從Play服務返回的。所以當這個限制來自?爲什麼只有20或22個項目?謝謝。 – RusArtM 2013-07-25 15:34:22

+0

@RusanovskiyArtem我不知道限制來自哪裏,但是我將補丁貢獻給Google,因此它應該成爲下一個版本中示例的一部分。 – 2013-07-29 10:23:59

+0

@ValerioSantinelli我有同樣的問題,並嘗試了你的補丁,但它不適合我。任何想法爲什麼。我仍然得到'IabResult:錯誤刷新庫存(查詢物品的價格)。 (迴應:5:開發人員錯誤)' – glo 2013-12-04 05:47:08

19

我們在測試模式應用程序之一,有同樣的問題。後來,我們發現,我們必須清除Google Play商店應用的緩存。

所以,你可以試試這個 -

  1. 轉到您設備的設置菜單。
  2. 轉到應用程序(也可能標記爲應用程序管理器)。
  3. 切換到所有應用程序。
  4. 搜索並打開Goog​​le Play商店應用。點擊它,應用程序設置將顯示
  5. 點擊清除數據和清除緩存。

現在回到您的應用並嘗試加載廣告資源。它解決了我們的問題。

+0

這對我有效。並非每次調用queryInventoryAsync()時,都會從Google服務器中檢索信息。它也可以從緩存中獲取速度。 – AxeEffect 2014-07-05 20:10:50

+7

但是,如果此應用發佈到Play商店,我們不能要求用戶這樣做。 – 2015-04-04 20:45:49

0

我有這個數了同樣的問題:

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

這說明是IInAppBillingService.aidl文件中提到,看到方法getSkuDetails(..)的文檔。

所以,你應該每次都做同樣的過程,每次20項