Ошибка обновления iventory (запрос цен на предметы). (ответ: 6: ошибка)
Я столкнулся с такой же проблемой, как
Биллинг в приложении v3 не может запрашивать элементы без сетевого подключения или в режиме полета/полета
Это не всегда происходит. Вам нужно переключить телефон в режим самолета или отключить Wi-Fi, подождать несколько часов, только проблема возникнет. Отобразится следующее сообщение об ошибке.
Не удалось выполнить запрос 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);
чтобы решить проблему.
Однако это не работает для меня. Такая же проблема все еще возникает.
Любое обходное решение этой проблемы? Спасибо.
Ответы
Ответ 1
Как сказал Джерри в своем комментарии, вы можете обойти это, позвонив
mHelper.queryInventoryAsync(false, mGotInventoryListener);
вместо
mHelper.queryInventoryAsync(mGotInventoryListener);
Я отключил все сетевые подключения с моего устройства (более одного дня) и могу надежно воспроизвести/исправить проблему с этим единственным изменением параметра. Похоже, что сама покупка будет кэшироваться дольше (на неопределенное время?) Службой биллинга в приложении, чем детали скрома, такие как цена.
Ответ 2
Похоже, что в Google Play закончились кэшированные предметы инвентаря. Это может быть подробная информация о том, как работает приложение Google Play.
Ошибка 6 определяется как BILLING_RESPONSE_RESULT_ERROR.
Если вам важно предлагать инвентарь для покупки даже без подключения к Интернету, вам может понадобиться последний последний результат кэширования и использовать их в случае сбоя запроса.
Однако, покупка также не будет работать в таком сценарии, так зачем беспокоиться?