Обработка ошибок в Android SDK
Каждая ошибка, возвращаемая SDK, имеет тип AdaptyError.
Включите подробное логирование перед отладкой. Большинство ошибок AdaptyError оборачивают базовую ошибку Play Billing, сети или бэкенда. При включённом подробном логировании (Adapty.logLevel = AdaptyLogLevel.VERBOSE — см. Логирование) эта ошибка выводится в консоль, что обычно указывает на реальную причину.
Если эти решения не помогли, перейдите в раздел Другие проблемы и выполните описанные шаги перед обращением в поддержку — это поможет нам быстрее разобраться в ситуации.
| Ошибка | Решение |
|---|---|
| UNKNOWN | Эта ошибка означает, что произошла неизвестная или непредвиденная ошибка. |
| ITEM_UNAVAILABLE | Эта ошибка чаще всего возникает на этапе тестирования. Она может означать, что продукты отсутствуют в production или что пользователь не входит в группу Testers в Google Play. |
| ADAPTY_NOT_INITIALIZED | SDK Adapty не активирован. Чаще всего это происходит, когда сплэш-экран или ранний UI-хук вызывает методы Adapty до того, как Adapty.activate завершится. Симптом непостоянный и может не воспроизводиться на эмуляторе, поскольку тайминг на реальном устройстве отличается. Дождитесь завершения Adapty.activate перед вызовом любых других методов SDK. Подробную последовательность см. в разделе Порядок вызовов в Android SDK. Также необходимо правильно настроить SDK Adapty с помощью метода Adapty.activate. |
| PROFILE_WAS_CHANGED | Профиль пользователя был изменён во время операции. Это происходит, когда метод вызывается в то время, пока Adapty.identify ещё выполняется — текущий вызов попадает на профиль, который вот-вот будет заменён, и SDK отклоняет его. Дождитесь завершения Adapty.identify перед вызовом других методов SDK. См. раздел Порядок вызовов в Android SDK. |
| PRODUCT_NOT_FOUND | Эта ошибка означает, что запрошенный для покупки продукт недоступен в сторе. |
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 | Устарело в Adapty Android SDK 4.0.2: restorePurchases() больше не возвращает эту ошибку. Если нечего восстанавливать, метод успешно завершается с текущим профилем — проверьте в нём статус уровня доступа. В более ранних версиях SDK эта ошибка означает, что Google Play не нашёл покупку для восстановления. |
| AUTHENTICATION_ERROR | Необходимо правильно настроить SDK Adapty с помощью метода Adapty.activate. |
| BAD_REQUEST | Некорректный запрос. Убедитесь, что вы выполнили все шаги, необходимые для интеграции с Google Play. |
| SERVER_ERROR | Ошибка сервера. |
| REQUEST_FAILED | Эта ошибка означает проблему с сетью, которую не удаётся точно определить. |
| DECODING_FAILED | Не удалось декодировать ответ. Проверьте код и убедитесь, что передаваемые параметры корректны. Например, эта ошибка может указывать на использование недействительного API-ключа. |
| ANALYTICS_DISABLED | Обработка аналитических событий невозможна, так как вы отключили её. |
| WRONG_PARAMETER | Эта ошибка означает, что некоторые из параметров указаны неверно: пустые там, где это недопустимо, или неправильного типа и т.д. SDK также возвращает эту ошибку, когда не может прочитать локальный файл резервного пейвола — чаще всего из-за несовпадения версии файла с версией SDK. Скачайте новый файл в дашборде. |
| LOGGING_OUT_UNIDENTIFIED_USER | Adapty.logout() был вызван для пользователя, который так и не был идентифицирован. Вызывайте его только после Adapty.identify. |
Ошибки рендеринга флоу
Adapty SDK 4.0 и выше передаёт эти ошибки через onError в вашем AdaptyFlowEventListener, а не возвращает их из вызова метода. См. Обработка событий в Android SDK.
| Ошибка | Решение |
|---|---|
| WRONG_ASSET_TYPE | Элемент изображения во флоу ссылается на ресурс, который является цветовой или градиентной заливкой, поэтому SDK отображает вместо него заглушку. Назначьте ресурс-изображение для этого элемента во Flow Builder. |
| JS_EXCEPTION | JavaScript флоу выбросил исключение. Прочитайте текст исключения в сообщении об ошибке. |
| NAVIGATOR_NOT_FOUND | Действие открытия экрана указывает на навигатор, который отсутствует в конфигурации представления флоу, а флоу не имеет навигатора default в качестве запасного варианта. Проверьте цель действия во Flow Builder. |
| INVALID_ACTION_URL | Действие открытия URL ссылается на строковый идентификатор, который не разрешается в URL. Укажите корректный URL для этого действия во Flow Builder. |
Другие проблемы
Если вы ещё не нашли решение, можно попробовать следующее:
- Обновление SDK до последней версии: мы всегда рекомендуем обновляться до последних версий SDK — они более стабильны и содержат исправления известных проблем.
- Обратитесь в службу поддержки или получите помощь от других разработчиков на форуме поддержки.
- Напишите в поддержку на support@adapty.io или через чат: если вы не готовы обновлять SDK или это не помогло, свяжитесь с нашей командой поддержки. Обратите внимание, что проблема будет решена быстрее, если вы включите подробное логирование и поделитесь логами с командой. Также можно приложить соответствующие фрагменты кода.