React Native、Android、Genymotion:ADB服务器没有';塔克
我正在Mac上使用React Native、Android和Genymotion。当我运行React Native、Android、Genymotion:ADB服务器没有';塔克,android,react-native,genymotion,Android,React Native,Genymotion,我正在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/paulb
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设备
返回以下内容:
List of devices attached
192.168.59.101:5555 device
到目前为止,我还没有找到在模拟器上运行我的应用程序的解决方案。有人遇到过同样的问题吗
谢谢,
保罗经过更多的研究,我意识到Genymotion默认使用自己的adb
我切换到我的主adb(与react native使用的相同),它解决了这个问题。我想,因为Genymotion的adb是首先启动的,所以我得到了已在使用的
地址
错误消息 我正在使用genymotion,但Paul的解决方案本身并没有修复错误(对于Mac)
我必须:
通过SDK管理器将Android SDK更新至最新版本(24.4.1)
在命令行中键入android
在SDK管理器中找到最新的SDK工具并安装
安装后,SDK路径应更新新的SDK位置,如下所示
然后更新$ANDROID_HOME以使用新的SDK
export-ANDROID\u HOME=/usr/local/ceral/ANDROID-sdk/24.4.1\u 1
export PATH=$PATH:$ANDROID\u HOME/tools:$ANDROID\u HOME/platform tools
通过使用echo$path查看您的路径来确认它已添加
然后在genymotion中按照@Paul所说的做,并指示genymotion ADB使用相同的sdk
系统:Windows 10
我的问题:将Genymotion设置为指向自定义SDK没有任何影响。我仍然收到:
无法在Android上启动项目:无法安装smartsocket
侦听器:无法绑定到127.0.0.1:5037:每个套接字只能使用一次
通常允许使用地址(协议/网络地址/端口)。(10048)
无法从ADB服务器读取ok*无法启动守护程序*错误:
无法连接到守护进程
我发现整个系统中使用的ADB版本存在差异。下面是我用来查找它们的命令:
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
让我看到世博会正在运行ADB版本:
Android Debug Bridge version 1.0.36
Revision fd9e4d07b0f5-android
使用自定义SDK的Genymotion版本为(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 kill-server
这导致adb服务器自动重新启动,因为我的Genymotion设备已在运行。我按下Expo XDE内部的“重启”按钮,它立即开始工作。这是我在凌晨1:13:04点击重启按钮的日志:
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具有相同的版本,这将允许设备之间进行正确的通信。我将Expo XDE版本移到了SDK位置,但您可能可以选择另一种方式(获取SDK ADB文件并将其放置在Expo XDE资源位置)
p.S.我已经浏览了所有与此问题相关的stackoverflow帖子。只是想让你们知道我的任务管理器显示了adb.exe运行的三个实例。如果你杀了他们中的任何一个,他们就会回来
希望这有助于/干杯我在尝试从expo UI运行时也遇到了同样的问题。
做了与答案中描述的相同的事情,但应用程序未运行。
当一次尝试从命令行(在项目文件夹中)运行expandroid时,应用程序成功运行,下一次从Expo UI运行成功。我遇到了类似的问题
首先,我卸载了应用程序。
然后,我将GenyMotion指向androidstudio提供的androidsdk
接下来,我在终端中运行了“adb kill server”。
最后,我重新运行了“react native run android”,并获得了构建成功。对我有效的步骤是:
- $adb kill服务器
- $adb启动服务器
- $cd android
- $./gradlew清洁
- $cd..
- $react本地运行android
如果您想保持系统清洁,也可以在不使用Android Studio的情况下使用Genymotion:
查找Genymotion的adb
副本。在macOS上,这通常是/Applications/Genymotion.app/Contents/macOS/tools/
将Genymotion工具目录添加到您的路径-执行/添加行导出路径=/Applications/Genymotion.app/Contents/MacOS/tools/:$path
到您的~/.bash\u配置文件
或~/.bash\u rc
确保可以从终端运行adb
(From)可能您的adb版本不匹配
检查:
adb version
然后:
如果这两个版本不同,则此处出现错误,只需从sys中删除adb,并将平台工具中的版本复制到/usr/bin/系统上的adb版本与android sdk平台工具上的adb版本不同。
以下建议适用于我的Linux操作系统
检查sys adb版本并运行以下命令
亚洲开发银行版本
Android调试桥版本1.0.39
检查sdk adb版本
cd/root/Android/Sdk/平台工具
/亚洲开发银行版本
Android调试桥版本1.0.32
抄袭
rm/usr/bin/adb
[注意:上述命令删除现有adb,然后从sdk/platform tools目录复制adb]
sudo cp/root/Android/Sdk/platform tools/adb/usr/bin/adb
然后r
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).
adb version
cd /Path/to/Android/Sdk/platform-tools && ./adb version
taskkill /F /IM adb.exe