Обработка ошибок в Android SDK
Каждая ошибка, возвращаемая SDK, имеет тип AdaptyError.
Включите подробное логирование перед отладкой. Большинство ошибок AdaptyError оборачивают базовую ошибку Play Billing, сети или бэкенда. При включённом подробном логировании (Adapty.logLevel = AdaptyLogLevel.VERBOSE — см. Логирование) эта ошибка выводится в консоль, что обычно указывает на реальную причину.
Если эти решения не помогли, перейдите в раздел Другие проблемы и выполните описанные шаги перед обращением в поддержку — это поможет нам быстрее разобраться в ситуации.
| Ошибка | Решение |
|---|---|
| UNKNOWN | Неизвестная или непредвиденная ошибка. |
| ITEM_UNAVAILABLE | Ошибка чаще всего возникает на этапе тестирования. Возможные причины: продукты отсутствуют в продакшене или пользователь не входит в группу тестировщиков в Google Play. |
| ADAPTY_NOT_INITIALIZED | SDK Adapty не активирован. Чаще всего возникает, когда экран-заставка или ранний UI-хук вызывает методы Adapty до завершения Adapty.activate. Проблема непостоянна и может не воспроизводиться на эмуляторе из-за отличий в таймингах реального устройства. Дождитесь завершения Adapty.activate, прежде чем вызывать другие методы SDK. Полная последовательность описана в Порядок вызовов в Android SDK. Также необходимо правильно настроить Adapty SDK с помощью метода Adapty.activate. |
| PROFILE_WAS_CHANGED | Профиль пользователя изменился во время выполнения операции. Это происходит, когда метод вызывается в то время, как Adapty.identify ещё не завершился — вызов попадает на профиль, который вот-вот будет заменён, и SDK его отклоняет. Дождитесь завершения Adapty.identify, прежде чем вызывать другие методы SDK. См. Порядок вызовов в Android SDK. |
| PRODUCT_NOT_FOUND | Продукт, запрошенный для покупки, недоступен в сторе. |
| INVALID_JSON | JSON резервного пейвола некорректен. Исправьте дефолтный английский пейвол, затем замените некорректные локальные пейволы. Подробнее об исправлении пейвола — в разделе Настройка пейвола с помощью Remote Config, о замене локальных пейволов — в разделе Определение резервных пейволов. |
CURRENT_SUBSCRIPTION_TO_UPDATE _NOT_FOUND_IN_HISTORY | Исходная подписка, которую нужно заменить, не найдена в активных подписках. |
| BILLING_SERVICE_TIMEOUT | Запрос достиг максимального таймаута до того, как Google Play успел ответить. Причиной может быть, например, задержка при выполнении действия, запрошенного вызовом Play Billing Library. |
| FEATURE_NOT_SUPPORTED | Запрошенная функция не поддерживается Play Store на данном устройстве. |
| BILLING_SERVICE_DISCONNECTED | Соединение клиентского приложения с сервисом Google Play Store через BillingClient разорвано. |
| BILLING_SERVICE_UNAVAILABLE | Сервис Google Play Billing в данный момент недоступен. В большинстве случаев причиной является проблема с сетевым соединением между клиентским устройством и серверами Google Play Billing. |
| BILLING_UNAVAILABLE | Ошибка биллинга в процессе покупки. Возможные причины: 1. Приложение Play Store на устройстве отсутствует или устарело. 2. Пользователь находится в неподдерживаемой стране. 3. Пользователь входит в корпоративный аккаунт, в котором администратор отключил покупки. 4. Google Play не смог списать средства со способа оплаты пользователя (например, истёк срок действия карты). 5. Пользователь не авторизован в приложении Play Store. |
| DEVELOPER_ERROR | API используется некорректно. |
| BILLING_ERROR | Внутренняя ошибка самого Google Play. |
| ITEM_ALREADY_OWNED | Продукт уже куплен. |
| ITEM_NOT_OWNED | Запрошенное действие с товаром не выполнено, так как он не принадлежит пользователю. |
| BILLING_NETWORK_ERROR | Проблема с сетевым соединением между устройством и серверами Play. |
| NO_PRODUCT_IDS_FOUND | Ни один из продуктов пейвола недоступен в сторе. Если вы столкнулись с этой ошибкой, выполните следующие шаги:
|
| NO_PURCHASES_TO_RESTORE | Google Play не нашёл покупку для восстановления. |
| AUTHENTICATION_ERROR | Необходимо правильно настроить Adapty SDK с помощью метода Adapty.activate. |
| BAD_REQUEST | Некорректный запрос. Убедитесь, что выполнены все шаги, необходимые для интеграции с Google Play. |
| SERVER_ERROR | Ошибка сервера. |
| REQUEST_FAILED | Сетевая ошибка, которую не удаётся классифицировать точнее. |
| DECODING_FAILED | Не удалось декодировать ответ. Проверьте код и убедитесь, что передаваемые параметры корректны. Например, эта ошибка может означать, что используется недействительный API-ключ. |
| ANALYTICS_DISABLED | Обработка аналитических событий невозможна, так как вы отключили её. |
| WRONG_PARAMETER | Один или несколько параметров некорректны: пустое значение там, где оно недопустимо, неверный тип и т. д. |
Другие проблемы
Если вы ещё не нашли решение, можно попробовать следующее:
- Обновление SDK до последней версии: мы всегда рекомендуем обновляться до последних версий SDK — они более стабильны и содержат исправления известных проблем.
- Обратитесь в службу поддержки или получите помощь от других разработчиков на форуме поддержки.
- Напишите в поддержку на [email protected] или через чат: если вы не готовы обновлять SDK или это не помогло, свяжитесь с нашей командой поддержки. Обратите внимание, что проблема будет решена быстрее, если вы включите подробное логирование и поделитесь логами с командой. Также можно приложить соответствующие фрагменты кода.