React-Native,Android,Gen​​ymotion:ADB服务器没有确认

我在Mac上使用React-Native,Android和Genymotion。 当我运行react-native run-android我在启动操作结束时得到了下面这行代码:

 ... 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. ... 

但是, adb devices返回这个:

 List of devices attached 192.168.59.101:5555 device 

到目前为止,我找不到在仿真器上运行我的应用程序的解决scheme。 有没有人遇到同样的问题?

谢谢,保罗

经过更多的研究,我意识到Genymotion默认使用自己的adb。

在这里输入图像说明

我切换到我的主要adb(相同的使用react-native),它解决了这个问题。 我想这是因为Genymotion的adb是第一次启动,我得到了Address already in use错误信息。

我使用genymotion,但保罗的解决scheme本身并没有解决错误(对于Mac)。

我不得不:

通过SDKpipe理器将Android SDK更新到最新版本(24.4.1)

在命令行中键入android

在SDKpipe理器中find最新的SDK工具并安装。

安装SDKpath后,应该像下面一样更新新的SDK位置。

在这里输入图像说明

然后更新$ ANDROID_HOME以使用新的SDK

export ANDROID_HOME=/usr/local/Cellar/android-sdk/24.4.1_1

export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

使用echo $PATH查看您的path,确认它已被添加

然后在genymotion上面做@Paul所说的,并指出genymotion ADB使用相同的sdk

在这里输入图像说明

我有一个类似的问题。

首先,我卸载了应用程序。 然后,我将GenyMotion指向Android Studio提供的android sdk。接下来,我在terminal中运行“adb kill-server”。 最后,我重新运行了“react-native run-android”并获得了成功。

系统: Windows 10

我的问题:设置Genymotion指向自定义SDK没有任何影响。 我仍然收到:

无法在Android上启动项目:无法安装smartsocket监听器:无法绑定到127.0.0.1:5037:通常只允许使用每个套接字地址(协议/networking地址/端口)。 (10048)无法从ADB服务器读取OK *无法启动守护进程*错误:无法连接到守护进程

我发现在整个系统中使用的ADB版本有所不同。 这是我用来find他们的命令:

 where /r C:\ adb.exe 

这产生了结果:

 C:\Program Files\Expo XDE\resources\app\node_modules\xdl\binaries\windows\adb\adb.exe C:\Program Files\Genymobile\Genymotion\tools\adb.exe C:\Users\kyle\AppData\Local\Android\Sdk\platform-tools\adb.exe C:\Users\kyle\AppData\Local\Android\Sdk\platform-tools\adb backup\adb.exe 

浏览到每个目录并运行:

 adb.exe version 

让我看到世博会正在运行的亚行版本:

 Android Debug Bridge version 1.0.36 Revision fd9e4d07b0f5-android 

而Genymotion使用自定义的SDK版本(c:\ Users \ kyle \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb.exe):

 Android Debug Bridge version 1.0.39 Revision 3db08f2c6889-android 

作为一个testing,我把adb文件(adb.exe,AdbWinApi.dll,AdbWinUsbApi.dll)从

 c:\Users\kyle\AppData\Local\Android\Sdk\platform-tools\adb.exe 

并将其放入备份文件夹中。 然后我移动了位于的adb文件

 c:\Program Files\Expo XDE\resources\app\node_modules\xdl\binaries\windows\adb\adb.exe 

进入相同的位置。 我用adb杀了adb

 adb kill-server 

由于我的Genymotion设备已经运行,导致自动重新启动adb服务器。 我点击了Expo XDE的“Restart”button,立即开始工作。 这里是我在1:13:04 AM点击重启button的日志:

 12:45:53 AM could not install *smartsocket* listener: cannot bind to 127.0.0.1:5037: Only one usage of each socket address (protocol/network address/port) is normally permitted. (10048) could not read ok from ADB Server * failed to start daemon * error: cannot connect to daemon 1:13:04 AM Restarting project and clearing packager cache (Hold shift while clicking restart to avoid clearing cache). 1:13:11 AM Starting React Native packager... 1:13:17 AM Scanning 543 folders for symlinks in C:\Users\kyle\git\betalog\node_modules (49ms) 1:13:17 AM 1:13:19 AM Couldn't adb reverse: closed 1:13:20 AM Project opened! You can now use the "Share" or "Device" buttons to view your project. 1:13:26 AM Couldn't adb reverse: closed 1:13:26 AM Downloading latest version of Expo 1:13:28 AM Installing Expo on device 1:13:33 AM Opening on Android device 1:13:56 AM Building JavaScript bundle: finished in 59643ms. 1:14:01 AM Dependency graph loaded. 1:14:03 AM Your JavaScript transform cache is empty, rebuilding (this may take a minute). 

结论: Genymotion和Expo可能需要使用相同版本的adb,以便Expo可以正确地与模拟设备进行通信。 指出Genymotion到你的android SDK的位置,以及确保Expo XDE具有相同的版本将允许设备之间的正确通信。 我把世博会的XDE版本移到了SDK的位置,但是你也许可以换个方式(把sdk的ADB文件放在Expo XDE的资源位置)。

PS我已经通过与此问题相关的stackoverflowpost。 只是所以你们知道我的任务pipe理器显示adb.exe运行的三个实例。 如果你杀了他们中的任何一个,他们就回来。

希望这有助于/欢呼

当我试图从博览会用户界面运行时,我有同样的事情。 如同答案中所描述的那样做了同样的事情,但是应用程序没有运行。 当曾经尝试从命令行运行exp android (在项目文件夹中),应用程序运行成功,下次运行Expo UI成功。