Estou trabalhando com React-Native, Android e Genymotion no Mac. Quando executo react-native run-android
, recebo estas linhas no final da operação de inicialização:
...
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.
...
No entanto, adb devices
retorna isso:
List of devices attached
192.168.59.101:5555 device
Até agora não encontrei nenhuma solução para executar meu aplicativo no emulador. Alguém encontrou o mesmo problema?
Obrigado Paul
android
react-native
genymotion
Paulo
fonte
fonte
Respostas:
Após mais pesquisas, percebi que o Genymotion usa por padrão seu próprio adb.
Mudei para o meu adb principal (o mesmo usado pelo react-native) e ele resolveu o problema. Acho que porque o adb do Genymotion foi lançado primeiro, recebi a
Address already in use
mensagem de erro.fonte
/Users/$yourName/Library/Android/sdk
. Se você instalou o Android, deve procurar seu caminho, dada a versão do Android / sua plataforma.Estou usando o genymotion, mas a solução de Paul sozinha não corrigiu o erro (para Mac).
Eu precisei:
Atualize o SDK do Android para a versão mais recente (24.4.1) através do gerenciador de SDK
Digite
android
na linha de comandoNo gerenciador do SDK, encontre as ferramentas e as instalações mais recentes do SDK.
Uma vez instalado, o caminho do SDK deve atualizar o novo local do SDK, como abaixo.
Atualize o $ ANDROID_HOME para usar o novo SDK
export ANDROID_HOME=/usr/local/Cellar/android-sdk/24.4.1_1
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
Confirme se ele foi adicionado visualizando seu caminho com
echo $PATH
Em genymotion, faça o que @Paul diz acima e aponte o genymotion ADB para usar o mesmo sdk
fonte
$ANDROID_HOME/tools
diretório não seria necessário no caminho de classe. Você precisa adicionar para se conectar ao adb.Sistema: Windows 10
Meu problema: configurar o Genymotion para apontar para o SDK personalizado não teve nenhum efeito. Eu ainda recebi o:
O que eu descobri foi que havia uma diferença nas versões do ADB sendo usadas em todo o sistema. Aqui está o comando que eu usei para encontrá-los:
Isso produziu os resultados:
Navegando para cada diretório e executando:
Permitiu-me ver que a Expo estava executando a versão ADB:
Enquanto o Genymotion usando o SDK personalizado tinha a versão (c: \ Users \ kyle \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb.exe):
Como teste, tirei os arquivos adb (adb.exe, AdbWinApi.dll, AdbWinUsbApi.dll) de
e os colocou em uma pasta de backup. Em seguida, movi os arquivos adb localizados em
nesse mesmo local. Eu matei adb com:
o que causou uma reinicialização do servidor adb automaticamente devido a meu dispositivo Genymotion já estar em execução. Apertei o botão "Reiniciar" dentro do Expo XDE e ele imediatamente começou a funcionar. Aqui está o log em que clico no botão reiniciar às 1:13:04:
Conclusão: Genymotion e Expo podem precisar usar a mesma versão do adb para que a Expo possa se comunicar adequadamente com o dispositivo simulado. Apontar o Genymotion para o local do SDK do Android e garantir que o Expo XDE tenha a mesma versão permitirá a comunicação correta entre os dispositivos. Mudei a versão do Expo XDE para o local do SDK, mas você pode seguir o caminho inverso (pegue os arquivos sdk ADB e coloque-os no local do recurso do Expo XDE).
PS: Eu já passei por todas as postagens de stackoverflow relacionadas a esse problema. Só para vocês saberem que meu gerenciador de tarefas mostra três instâncias do adb.exe em execução. Se você matar algum deles, eles simplesmente voltam.
Espero que isso ajude / aplausos
fonte
Talvez suas versões do adb sejam incompatíveis
Verifica:
Então:
Se esses dois forem diferentes, há um erro aqui, basta remover o adb do sys e copie o que estiver nas ferramentas da plataforma para / usr / bin /
fonte
Se quiser manter seu sistema limpo, você também pode usar o Genymotion sem o Android Studio :
adb
. No macOS, isso é normalmente/Applications/Genymotion.app/Contents/MacOS/tools/
.export PATH=/Applications/Genymotion.app/Contents/MacOS/tools/:$PATH
ao seu~/.bash_profile
ou~/.bash_rc
.(Em https://docs.expo.io/versions/latest/workflow/genymotion )
fonte
a versão adb no seu sistema é diferente da versão adb nas ferramentas da plataforma sdk do android. Abaixo sugestão é trabalhar para mim para o sistema operacional Linux
Android Debug Bridge versão 1.0.39
Android Debug Bridge versão 1.0.32
[Nota: o comando acima remove o adb existente e copia-o do diretório sdk / platform-tools]
Em seguida, execute o projeto usando este comando
fonte
Eu tive a mesma coisa enquanto tentava executar a partir da interface do usuário expo. Fez as mesmas coisas, conforme descrito nas respostas, mas o aplicativo não estava em execução. Quando uma vez tentou executar a
exp android
partir da linha de comando (na pasta do projeto), o aplicativo foi executado com êxito e na próxima vez em que foi executado a partir da Expo UI.fonte
Eu tive uma questão semelhante.
Primeiro, eu desinstalei o aplicativo. Em seguida, apontei o GenyMotion para o Android SDK fornecido pelo Android Studio. Em seguida, executei "adb kill-server" no terminal. Finalmente, refiz o "react-native run-android" e obtive um sucesso de construção.
fonte
As etapas trabalhadas para mim são:
$ adb kill-server
$ adb start-server
$ cd android
$ ./gradlew clean
$ cd ..
$ react-native run-android
fonte
Para o Ubuntu
Funciona para mim!!
Android Debug Bridge versão 1.0.39
2 verificar a versão sdk adb
Android Debug Bridge versão 1.0.32
Isso é tudo! Isso vai funcionar agora.
fonte
1. use o caminho sdk personalizado no genymotion. (Suponha que este não funcione significa, tente executar o segundo)
2. Utilize manualmente este comando para executar (SDK PATH / adb, ela será start -n / Package name / MainActivity).
C: \ Users \ AppData \ Local \ Android \ Sdk / platform-tools / adb, ela iniciará -n com.example / com.example.ManiActivity
E tente executar o aplicativo usando react-native run-android.
fonte
Estes são os passos
fonte