Estoy trabajando con React-Native, Android y Genymotion en Mac. Cuando corro react-native run-android
, recibo estas líneas al final de la operación de lanzamiento:
...
04:54:40 E/adb: error: could not install *smartsocket* listener: Address already in use
04:54:40 E/adb: ADB server didn't ACK
04:54:40 E/ddms: '/Users/paulbrie/Library/Android/sdk/platform-tools/adb,start-server' failed -- run manually if necessary
04:54:40 E/adb: * failed to start daemon *
04:54:40 E/adb: error: cannot connect to daemon
:app:installDebug FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:installDebug'.
> com.android.builder.testing.api.DeviceException: Timeout getting device list.
...
Sin embargo, adb devices
devuelve esto:
List of devices attached
192.168.59.101:5555 device
Hasta ahora no he encontrado una solución para ejecutar mi aplicación en el emulador. ¿Alguien ha encontrado el mismo problema?
Gracias paul
android
react-native
genymotion
Pablo
fuente
fuente
Respuestas:
Después de más investigación, me di cuenta de que Genymotion usa por defecto su propio adb.
Cambié a mi adb principal (el mismo que usa react-native) y resolvió el problema. Supongo que porque el adb de Genymotion se lanzó primero, recibí el
Address already in use
mensaje de error.fuente
/Users/$yourName/Library/Android/sdk
. Si instaló Android, debe buscar su ruta dada la versión de Android / su plataforma.Estoy usando genymotion, pero la solución de Paul por sí sola no solucionó el error (para Mac).
Tuve que:
Actualice el SDK de Android a la última versión (24.4.1) a través del administrador del SDK
Escribe
android
en la línea de comandoEn el administrador de SDK encuentre las últimas herramientas de SDK e instálelas.
Una vez instalada, la ruta del SDK debe actualizar la nueva ubicación del SDK como se muestra a continuación.
Luego actualice $ ANDROID_HOME para usar el nuevo SDK
export ANDROID_HOME=/usr/local/Cellar/android-sdk/24.4.1_1
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
Confirme que se ha agregado al ver su ruta con
echo $PATH
Luego, en genymotion, haga lo que @Paul dice arriba y señale genymotion ADB para usar el mismo SDK
fuente
$ANDROID_HOME/tools
directorio no sería necesario en el classpath. Necesita agregar para conectarse a adb.Sistema: Windows 10
Mi problema: configurar Genymotion para que apunte al SDK personalizado no tuvo ningún efecto. Todavía recibí el:
Lo que descubrí fue que había una diferencia en las versiones de ADB que se utilizan en todo el sistema. Aquí está el comando que usé para encontrarlos:
Esto produjo los resultados:
Navegando a cada directorio y ejecutando:
Me permitió ver que Expo estaba ejecutando la versión ADB:
Mientras que Genymotion usando el SDK personalizado tenía versión (c: \ Users \ kyle \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb.exe):
Como prueba, tomé los archivos adb (adb.exe, AdbWinApi.dll, AdbWinUsbApi.dll) de
y los colocó en una carpeta de respaldo. Luego moví los archivos adb ubicados en
en esa misma ubicación Maté a adb con:
lo que provocó un reinicio del servidor adb automáticamente debido a que mi dispositivo Genymotion ya se estaba ejecutando. Apreté el botón "Reiniciar" dentro de Expo XDE e inmediatamente comenzó a funcionar. Aquí está el registro donde presioné el botón de reinicio a las 1:13:04 AM:
Conclusión: Genymotion y Expo pueden necesitar usar la misma versión de adb para que Expo pueda comunicarse adecuadamente con el dispositivo simulado. Señalar Genymotion a la ubicación del SDK de Android y asegurarse de que Expo XDE tenga la misma versión permitirá la comunicación correcta entre dispositivos. Moví la versión de Expo XDE a la ubicación del SDK, pero es posible que pueda ir hacia otro lado (tome los archivos ADB de SDK y colóquelos en la ubicación de recursos de Expo XDE).
PD : He estado en todas las publicaciones de stackoverflow relacionadas con este problema. Para que sepan, mi administrador de tareas muestra tres instancias de adb.exe ejecutándose. Si matas a alguno de ellos, simplemente regresan.
Espero que esto ayude / salud
fuente
Tal vez sus versiones de adb no coinciden
Cheque:
Luego:
Si estos dos son diferentes, tiene un error aquí, simplemente elimine adb de sys y copie el que está en herramientas de plataforma a / usr / bin /
fuente
Si desea mantener su sistema limpio, también puede usar Genymotion sin Android Studio :
adb
. En macOS esto es normalmente/Applications/Genymotion.app/Contents/MacOS/tools/
.export PATH=/Applications/Genymotion.app/Contents/MacOS/tools/:$PATH
a su~/.bash_profile
o~/.bash_rc
.(De https://docs.expo.io/versions/latest/workflow/genymotion )
fuente
la versión de adb en su sistema es diferente de la versión de adb en las herramientas de plataforma sdk de android. A continuación, la sugerencia me funciona para el sistema operativo Linux
Android Debug Bridge versión 1.0.39
Android Debug Bridge versión 1.0.32
[Nota: el comando anterior elimina el adb existente y luego copia el adb del directorio sdk / platform-tools]
Luego ejecuta el proyecto usando este comando
fuente
Tuve lo mismo mientras trataba de huir de la expo UI. Hizo lo mismo, como se describe en las respuestas, pero la aplicación no se estaba ejecutando. Cuando una vez intentado ejecutar
exp android
desde la línea de comandos (en la carpeta del proyecto), la aplicación se ejecutó con éxito y la próxima vez se ejecuta con éxito desde la interfaz de usuario de Expo.fuente
Tuve un problema similar
Primero, desinstalé la aplicación. Luego, apunté GenyMotion al sdk de Android proporcionado por Android Studio. Luego, ejecuté "adb kill-server" en el terminal. Finalmente, volví a ejecutar "react-native run-android" y obtuve un éxito de compilación.
fuente
Los pasos que me funcionaron son:
$ adb kill-server
$ adb start-server
$ cd android
$ ./gradlew clean
$ cd ..
$ react-native run-android
fuente
Para Ubuntu
¡¡Esto funciona para mi!!
Android Debug Bridge versión 1.0.39
2 compruebe la versión de sdk adb
Android Debug Bridge versión 1.0.32
¡eso es todo! Funcionará ahora.
fuente
1.Utilice la ruta sdk personalizada en genymotion. (Suponga que esta no funciona significa, intente ejecutar la segunda)
2. Utilice manualmente este comando para ejecutar (SDK PATH / adb she ll start -n / Package name / MainActivity).
C: \ Users \ AppData \ Local \ Android \ Sdk / platform-tools / adb ella será start -n com.example / com.example.ManiActivity
E intente ejecutar la aplicación utilizando react-native run-android.
fuente
Estos son los pasos
fuente