esedark
Terminal de Ubuntu utilizada para diagnosticar una instalación de Appium

Appium / Ubuntu / Android / diagnóstico

Errores comunes instalando Appium en Ubuntu y cómo solucionarlos

Una instalación fiable es una cadena: Node.js, Appium, su driver Android, Java, el SDK, los permisos de ADB y el dispositivo deben ser compatibles.

Cuando falla la instalación de Appium en Ubuntu, reinstalar todo rara vez descubre la causa. Conviene diagnosticar cada capa y registrar sus versiones. Así el entorno se puede reproducir en otro servidor o en CI.

Comprueba el runtime antes de Appium

Ejecuta node --version, npm --version y which node. Appium puede haberse instalado con una versión de Node.js mientras la terminal usa otra, sobre todo si conviven paquetes del sistema y un gestor de versiones. Usa una versión compatible, conserva una sola ruta activa y evita sudo npm install -g: los ficheros propiedad de root provocarán después errores de permisos.

Instala Appium y el driver Android por separado

Appium moderno separa el servidor de los drivers de plataforma. Instala el driver UiAutomator2 y compruébalo con appium driver list --installed. El servidor puede arrancar bien y rechazar sesiones Android porque el driver falta o es incompatible. Consulta UiAutomator2 explicado para desarrolladores backend para entender su arquitectura.

Corrige JAVA_HOME y ANDROID_HOME

Verifica java -version y haz que JAVA_HOME apunte al directorio real del JDK, no al ejecutable. Define de forma coherente la ruta del Android SDK y añade platform-tools al PATH. Prueba adb version desde una terminal nueva. Recuerda que una terminal interactiva y un worker de systemd no heredan necesariamente el mismo entorno.

Resuelve errores de dispositivos y permisos ADB

Ejecuta adb devices -l. Un dispositivo unauthorized requiere aceptar el aviso de depuración. Si solo aparece con sudo, normalmente faltan una regla udev adecuada, el grupo correcto o recargar las reglas. No ejecutes toda la automatización como root para ocultar el fallo. Cuando conectes varios teléfonos, asigna cada trabajo por serial; también es esencial en la guía práctica de Appium para Android.

Lee el primer error útil de Appium

Conserva la petición completa de sesión, versión del driver, serial y marcas de tiempo. La última traza suele ser una consecuencia; el primer comando fallido acostumbra a señalar la causa. Valida plataforma, motor de automatización, ruta de la aplicación o package/activity, y no copies capacidades obsoletas de versiones antiguas.

Errores comunes

  • mezclar instalaciones de Node.js de apt, snap y un gestor de versiones
  • instalar Appium sin instalar UiAutomator2
  • usar sudo para npm o ADB en vez de arreglar permisos
  • definir el SDK solo en una terminal interactiva
  • usar versiones incompatibles de Java o Node.js
  • no aceptar la autorización de depuración USB
  • enviar capacidades obsoletas
  • cambiar varias capas antes de volver a probar
  • descartar logs del servidor, ADB y dispositivo

Checklist práctico de instalación

  • registra versiones de Ubuntu, Node.js, npm, Java, Appium y driver
  • confirma un único binario de Node.js y directorios npm con permisos
  • valida las rutas de Java y Android SDK en una terminal nueva
  • instala y lista el driver UiAutomator2
  • comprueba que ADB muestra el serial como device
  • prueba una sesión mínima antes de añadir lógica
  • guarda capacidades exactas y el log completo
  • repite la prueba con el usuario que ejecutará producción
  • fija dependencias estables y documenta actualizaciones

Cuándo tiene sentido contratar a una persona técnica

Busca un especialista en automatización Android cuando el sistema deba soportar varios dispositivos, recuperación desatendida, colas, workers remotos o monitorización. Lo difícil no es abrir una sesión: es hacer predecibles las versiones, la asignación de dispositivos, los reintentos y los logs. Esto puede abordarse dentro de un proyecto de automatización móvil a medida.

Conclusión

Trata Appium en Ubuntu como una cadena de dependencias y valida cada eslabón por separado. Si tus sesiones siguen siendo inestables o necesitas una arquitectura reproducible, contacta conmigo.