Gestionar errores en el SDK de Android

Cada error devuelto por el SDK es de tipo AdaptyError.

Tip

Activa los logs detallados antes de depurar. La mayoría de los AdaptyError envuelven un error subyacente de Play Billing, de red o del backend. Con los logs detallados activados (Adapty.logLevel = AdaptyLogLevel.VERBOSE — consulta Logging), ese error envuelto se imprime en la consola, lo que normalmente te indica la causa real.

Important

Si estas soluciones no resuelven tu problema, consulta Otros problemas para ver los pasos que debes seguir antes de contactar con el soporte y así ayudarnos a asistirte de forma más eficiente.

ErrorSolución
UNKNOWNEste error indica que ocurrió un error desconocido o inesperado.
ITEM_UNAVAILABLEEste error ocurre principalmente durante la fase de pruebas. Puede significar que los productos no están disponibles en producción o que el usuario no pertenece al grupo de Testers en Google Play.
ADAPTY_NOT_INITIALIZEDEl SDK de Adapty no está activado.
Suele aparecer cuando una pantalla de splash o un hook de UI temprano llama a métodos de Adapty antes de que Adapty.activate haya terminado. El síntoma es intermitente y puede no reproducirse en un emulador porque el timing en dispositivos reales es diferente. Espera a que Adapty.activate finalice antes de programar cualquier otra llamada al SDK. Consulta Orden de llamadas en el SDK de Android para ver la secuencia completa. También debes configurar correctamente el SDK de Adapty mediante el método Adapty.activate.
PROFILE_WAS_CHANGEDEl perfil del usuario cambió durante la operación.
Esto ocurre cuando se llama a un método mientras Adapty.identify aún está en curso — la llamada en vuelo aterriza en un perfil que está a punto de ser reemplazado, y el SDK la rechaza. Espera a que Adapty.identify finalice antes de programar otras llamadas al SDK. Consulta Orden de llamadas en el SDK de Android.
PRODUCT_NOT_FOUNDEste error indica que el producto solicitado para la compra no está disponible en el store.

CURRENT_SUBSCRIPTION_TO_UPDATE

_NOT_FOUND_IN_HISTORY

La suscripción original que debe reemplazarse no se encuentra entre las suscripciones activas.
BILLING_SERVICE_TIMEOUTEste error indica que la solicitud alcanzó el tiempo de espera máximo antes de que Google Play pudiera responder. Puede deberse, por ejemplo, a un retraso en la ejecución de la acción solicitada por la llamada a la Play Billing Library.
FEATURE_NOT_SUPPORTEDLa función solicitada no está disponible en el Play Store del dispositivo actual.
BILLING_SERVICE_DISCONNECTEDEste error indica que la conexión de la app cliente con el servicio de Google Play Store a través del BillingClient se ha interrumpido.
BILLING_SERVICE_UNAVAILABLEEste error indica que el servicio de facturación de Google Play no está disponible en este momento. En la mayoría de los casos, significa que hay un problema de conexión de red en algún punto entre el dispositivo cliente y los servicios de Google Play Billing.
BILLING_UNAVAILABLE

Este error indica que ocurrió un problema de facturación durante el proceso de compra. Las posibles causas son:

1. La app de Play Store en el dispositivo del usuario no está instalada o está desactualizada.

2. El usuario se encuentra en un país no compatible.

3. El usuario pertenece a una cuenta empresarial donde el administrador ha deshabilitado las compras.

4. Google Play no pudo cobrar el método de pago del usuario (por ejemplo, una tarjeta de crédito vencida).

5. El usuario no ha iniciado sesión en la app de Play Store.

DEVELOPER_ERROREste error indica que estás usando una API de forma incorrecta.
BILLING_ERROREste error indica un problema interno de Google Play.
ITEM_ALREADY_OWNEDEl producto ya ha sido comprado.
ITEM_NOT_OWNEDEste error indica que la acción solicitada sobre el artículo falló porque el usuario no es su propietario.
BILLING_NETWORK_ERROREste error indica que hubo un problema con la conexión de red entre el dispositivo y los sistemas de Play.
NO_PRODUCT_IDS_FOUND

Este error indica que ninguno de los productos del paywall está disponible en el store.

Si encuentras este error, sigue estos pasos para resolverlo:

  1. Comprueba que todos los productos se han añadido al Adapty Dashboard.
  2. Asegúrate de que el Package name de tu app coincide con el que aparece en la Google Play Console.
  3. Verifica que los identificadores de producto del store coincidan con los que añadiste al Dashboard. Ten en cuenta que los identificadores no deben incluir el Bundle ID, a menos que ya esté incluido en el store.
  4. Confirma que el estado de pago de la app es Active en tu configuración fiscal de Google. Asegúrate de que tu información fiscal está actualizada y que tus certificados son válidos.
  5. Comprueba que hay una cuenta bancaria vinculada a la app para que pueda ser elegible para la monetización.
  6. Verifica que los productos estén disponibles en tu región.
  7. Asegúrate de que tu app está en alguno de los canales de prueba. El canal Internal testing es la opción más sencilla, ya que no requiere revisión y mantiene la app oculta para los usuarios.
NO_PURCHASES_TO_RESTOREObsoleto en el SDK de Adapty Android 4.0.2: restorePurchases() ya no devuelve este error. Cuando no hay nada que restaurar, el método finaliza correctamente con el perfil actual, por lo que debes comprobar el estado del nivel de acceso en él. En versiones anteriores del SDK, este error indica que Google Play no encontró la compra a restaurar.
AUTHENTICATION_ERRORDebes configurar correctamente el SDK de Adapty mediante el método Adapty.activate.
BAD_REQUESTSolicitud incorrecta.
Asegúrate de haber completado todos los pasos necesarios para integrarte con Google Play.
SERVER_ERRORError del servidor.
REQUEST_FAILEDEste error indica un problema de red que no puede definirse con precisión.
DECODING_FAILEDNo fue posible decodificar la respuesta.
Revisa tu código y asegúrate de que los parámetros que envías son válidos. Por ejemplo, este error puede indicar que estás usando una clave de API no válida.
ANALYTICS_DISABLEDNo podemos procesar eventos de analíticas porque los desactivaste.
WRONG_PARAMETER

Este error indica que alguno de tus parámetros no es correcto: está en blanco cuando no puede estarlo, es del tipo incorrecto, etc.

El SDK también devuelve este error cuando no puede leer un archivo de respaldo local — generalmente porque la versión del archivo no coincide con la versión del SDK. Descarga un archivo nuevo desde el dashboard.

LOGGING_OUT_UNIDENTIFIED_USERSe llamó a Adapty.logout() para un usuario que nunca fue identificado. Llámalo solo después de Adapty.identify.

Errores de renderizado del flow

El SDK de Adapty 4.0 y versiones posteriores notifica estos errores a través de onError en tu AdaptyFlowEventListener, en lugar de devolverlos desde una llamada a un método. Consulta Gestionar eventos en el SDK de Android.

ErrorSolución
WRONG_ASSET_TYPEUn elemento de imagen en el flow apunta a un asset que es un relleno de color o degradado, por lo que el SDK renderiza un marcador de posición en su lugar. Asigna un asset de imagen a ese elemento en el Flow Builder.
JS_EXCEPTIONEl JavaScript del flow lanzó una excepción. Lee el texto de la excepción en el mensaje de error.
NAVIGATOR_NOT_FOUNDUna acción de apertura de pantalla hace referencia a un navegador que no existe en la configuración de vistas del flow, y el flow no tiene un navegador default al que recurrir. Revisa el destino de la acción en el Flow Builder.
INVALID_ACTION_URLUna acción de apertura de URL hace referencia a un ID de cadena que no se resuelve en una URL. Define una URL válida para esa acción en el Flow Builder.

Otros problemas

Si todavía no has encontrado una solución, los siguientes pasos pueden ser:

  • Actualizar el SDK a la última versión: Siempre recomendamos actualizar a las últimas versiones del SDK, ya que son más estables e incluyen correcciones de problemas conocidos.
  • Contactar al equipo de soporte u obtener ayuda de otros desarrolladores en el foro de soporte.
  • Contactar al equipo de soporte a través de support@adapty.io o por el chat: Si no puedes actualizar el SDK o la actualización no resolvió el problema, contacta a nuestro equipo de soporte. Ten en cuenta que tu problema se resolverá más rápido si activas el registro detallado y compartes los logs con el equipo. También puedes adjuntar fragmentos de código relevantes.