尝试在设备上运行时出错

时间:2016-05-19 06:16:26

标签: nativescript

尝试运行时

tns run android --device xxxx

我总是这样犯错:

Error: error: 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

at Socket.<anonymous> (C:\Users\Raziff\AppData\Roaming\npm\node_modules\nativescript\lib\common\mobile\mobile-core\android-device-discovery.js:54:25)
at emitOne (events.js:77:13)
at Socket.emit (events.js:169:7)
at readableAddChunk (_stream_readable.js:146:16)
at Socket.Readable.push (_stream_readable.js:110:10)
at Pipe.onread (net.js:523:20)

任何解决此问题的方法。我已尝试过各种设备。

3 个答案:

答案 0 :(得分:0)

你检查了你的港口吗?您的端口5037可能正在被其他应用程序使用。您可以使用Windows任务管理器检查您的端口。

答案 1 :(得分:0)

当你运行tns超过2次它有时消耗你的端口,你需要做的就是运行

taskkill /f /pid 123456

您将获得在您的计算机上运行的任务列表。 您需要在本地地址列中查找5037端口,找到后,检查任务的进程ID(PID)。 然后用

杀死它
{{1}}

现在你可以继续开发了:)

答案 2 :(得分:0)

我发现在整个系统中使用的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

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

Android Debug Bridge version 1.0.36
Revision fd9e4d07b0f5-android

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

Android Debug Bridge version 1.0.39
Revision 3db08f2c6889-android

作为测试,我从

中获取了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 kill-server

由于我的Genymotion设备已经运行,导致adb服务器自动重启。我点击了#34;重启&#34;世博XDE内的按钮立即开始工作。这是我在上午1:13:04点击重启按钮的日志:

只需所有adb.exe文件都必须具有相同的版本。