ADB 和 Genymotion 错误:“adb 服务器已过期。正在杀死...无法绑定 'tcp:5037' ADB 服务器未确认”[重复]
Posted
技术标签:
【中文标题】ADB 和 Genymotion 错误:“adb 服务器已过期。正在杀死...无法绑定 \'tcp:5037\' ADB 服务器未确认”[重复]【英文标题】:ADB and Genymotion error: "adb server is out of date. killing... cannot bind 'tcp:5037' ADB server didn't ACK" [duplicate]ADB 和 Genymotion 错误:“adb 服务器已过期。正在杀死...无法绑定 'tcp:5037' ADB 服务器未确认”[重复] 【发布时间】:2015-08-25 18:08:02 【问题描述】:在启动 genymotion 模拟器后尝试从终端使用adb shell
,我收到此错误:
adb server is out of date. killing...
cannot bind 'tcp:5037'
ADB server didn't ACK
* failed to start daemon *
error:
我阅读了this answer on *** 以运行此命令killall -9 adb
,所以我这样做了,然后它说要更改 genymotion 设置以使用自定义 android SDK 工具,如下所示:
正如您在上面的屏幕截图中看到的那样,我也这样做了,但我仍然收到相同的错误消息。
每当我尝试运行 adb shell
时,我的 android Studio ADB 日志都会显示以下消息:
DeviceMonitor: Adb connection Error:EOF
DeviceMonitor: Connection attempts: 1
我什至尝试创建一个新的虚拟设备并使用它,但没有任何成功。
【问题讨论】:
你试过adb kill-server
吗?更新 Android 工具?
在输入显示的命令后感谢 Hugo:deamon not running. starting it now on port 5037 deamon started succesfully
然后 error: device not found
。我确定这是一个 genymotion 问题我尝试用我的 android 手机和内置模拟器的 Android Studio 运行 adb shell,它工作得很好
那么它现在工作了吗?如果没有,请尝试更新您的 android sdk 和 genymotion
不,我会尝试更新 genymotion 和 sdk,谢谢
看看这个答案:***.com/a/26431991/779408
【参考方案1】:
如果您有 1.0.31 或更低版本,请将 adb 更新到 1.0.32
adb version
Android Debug Bridge version 1.0.31
wget -O - https://skia.googlesource.com/skia/+archive/cd048d18e0b81338c1a04b9749a00444597df394/platform_tools/android/bin/linux.tar.gz | tar -zxvf - adb
sudo mv adb /usr/bin/adb
sudo chmod +x /usr/bin/adb
adb version
Android Debug Bridge version 1.0.32
【讨论】:
为我工作。谢谢 谢谢你!这让我一直很头疼。终于解决了。 在这个命令之后 wget -O - skia.googlesource.com/skia/+archive/… | tar -zxvf - adb result I got tar: Exiting with failure status due to previous errors adb 可能在其他地方,例如我有它 /usr/local/bin/adb (OS X),所以如果您在 spawyn 响应期间遇到任何错误,请使用 which adb 找出它的位置是。【参考方案2】:这些解决方案都不适合我。
解决我的错误的解决方案是将缺少的 /Android/Sdk/tools 和 /Android/Sdk/platform-tools 目录添加到我的 Environment PATH 变量中,这可以通过以下命令实现:
export PATH=/home/username/Android/Sdk/tools:/home/username/Android/Sdk/platform-tools:$PATH
确保将您自己的用户名插入到命令中,将 username 替换为您的操作系统用户名。
这样做会引导您的命令行在您的 Environmant 的 PATH 变量中搜索 adb 可执行文件的正确位置,如果没有设置此环境变量,您的系统将不知道在哪里寻找正确的可执行文件。
【讨论】:
为我工作,谢谢 终于!!谢谢!【参考方案3】:这个问题的根本原因是您尝试运行不同版本的 adbs。 PC(Host)端adb由两部分组成:adb和adb server。
adb adb 服务器 adbd(设备)
adb 和 adb server 实际上是同一个二进制文件,但是当你第一次发出 adb 命令时 adb server 是在后台运行的。之后,每次运行 adb 时,adb 命令都会联系哪个 adb 服务器,并首先检查运行 adb 服务器的版本。如果版本不匹配,那么您将看到 'adb server is out of date.杀……”这是唯一的原因。
int adb_connect(const std::string& service, std::string* error)
// first query the adb server's version
int fd = _adb_connect("host:version", error);
...
if (version != ADB_SERVER_VERSION)
printf("adb server is out of date. killing...\n");
fd = _adb_connect("host:kill", error);
adb_close(fd);
/* XXX can we better detect its death? */
adb_sleep_ms(2000);
goto start_server;
要解决这个问题,你只需要确保你没有尝试运行不同版本的 adb。
-
使用任务管理器工具找到运行adb服务器的二进制路径,搜索“adb”。使用命令检查其版本
[adb 服务器的路径]/adb 版本
输出如下:
Android Debug Bridge version 1.0.35
Revision 68de85bda98d-android
“1.0.35”是版本号。
-
检查导致问题的 adb 版本。只需输入
adb 版本
-
比较版本号,它们必须匹配。
如果不匹配,您可以:
只保留一个adb,删除其他。 或者您可以忽略该错误。如果它总是显示,找出谁在为你运行不同的 adb 工具并停止它。例如,一些电话助理程序。【讨论】:
以上是关于ADB 和 Genymotion 错误:“adb 服务器已过期。正在杀死...无法绑定 'tcp:5037' ADB 服务器未确认”[重复]的主要内容,如果未能解决你的问题,请参考以下文章
通过ADB安装apk到genymotion报[INSTALL_FAILED_CPU_ABI_INCOMPATIBLE]错误的解决方法
Genymotion 模拟器连接不上(adb server version (40) doesn't match this client (39))