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 服务器未确认”[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Genymotion模拟器adb冲突解决方法

通过ADB安装apk到genymotion报[INSTALL_FAILED_CPU_ABI_INCOMPATIBLE]错误的解决方法

adb怎么连接Genymotion的虚拟机

Genymotion 模拟器连接不上(adb server version (40) doesn't match this client (39))

如何重启 ADB 服务器

各模拟器adb连接端口