Gestionar errores en el SDK de Android
Cada error devuelto por el SDK es de tipo AdaptyError.
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.
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.
| Error | Solución |
|---|---|
| UNKNOWN | Este error indica que ocurrió un error desconocido o inesperado. |
| ITEM_UNAVAILABLE | Este 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_INITIALIZED | El 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_CHANGED | El 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_FOUND | Este 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_TIMEOUT | Este 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_SUPPORTED | La función solicitada no está disponible en el Play Store del dispositivo actual. |
| BILLING_SERVICE_DISCONNECTED | Este 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_UNAVAILABLE | Este 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_ERROR | Este error indica que estás usando una API de forma incorrecta. |
| BILLING_ERROR | Este error indica un problema interno de Google Play. |
| ITEM_ALREADY_OWNED | El producto ya ha sido comprado. |
| ITEM_NOT_OWNED | Este error indica que la acción solicitada sobre el artículo falló porque el usuario no es su propietario. |
| BILLING_NETWORK_ERROR | Este 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:
|
| NO_PURCHASES_TO_RESTORE | Obsoleto 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_ERROR | Debes configurar correctamente el SDK de Adapty mediante el método Adapty.activate. |
| BAD_REQUEST | Solicitud incorrecta. Asegúrate de haber completado todos los pasos necesarios para integrarte con Google Play. |
| SERVER_ERROR | Error del servidor. |
| REQUEST_FAILED | Este error indica un problema de red que no puede definirse con precisión. |
| DECODING_FAILED | No 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_DISABLED | No 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_USER | Se 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.
| Error | Solución |
|---|---|
| WRONG_ASSET_TYPE | Un 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_EXCEPTION | El JavaScript del flow lanzó una excepción. Lee el texto de la excepción en el mensaje de error. |
| NAVIGATOR_NOT_FOUND | Una 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_URL | Una 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.