React-Native,Android,Genymotion: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成功。
- ClassCastException android.widget.FrameLayout $ LayoutParams to android.support.v4.widget.DrawerLayout $ LayoutParams
- Android – ICS 4.0中的MediaPlayer缓冲区大小
- 将java java支持lambdaexpression式在java 8?
- 在发布前优化Android应用程序
- Android:为什么没有一个视图的maxHeight?
- 活动与片段活动之间的区别
- iOS / Android跨平台开发
- 在Android 5.0上的AppCompat CardView上设置XML的高程
- 倒转animation