vij*_*mar 1 adb appium-android
adb server version (39) doesn't match this client (40); killing...
could not read ok from ADB Server
* failed to start daemon
error: cannot connect to daemon
adb: error: failed to get feature set: protocol fault (couldn't read status): Connection reset by peer
* daemon not running; starting now at tcp:5037
* daemon started successfully
- waiting for device -
error: protocol fault (couldn't read status): Connection reset by peer
Run Code Online (Sandbox Code Playgroud)
小智 6
在Linux中遇到这个错误时,我删除了我的adb文件
/usr/bin/
Run Code Online (Sandbox Code Playgroud)
并替换为一个
/Android/Sdk/platform-tools/
Run Code Online (Sandbox Code Playgroud)
它奏效了。
正如前面的答案所指出的,这是由于adb您的系统中安装了多个版本。可能一个来自android-sdk-platform-tools安装的via apt,另一个来自Android Sdk本身(通常是较新的版本)。
在 Ubuntu(或基于 Ubuntu 的操作系统)中解决此问题的最简单方法是在~/.bashrc文件末尾添加以下行:
alias adb='~/Android/Sdk/platform-tools/adb'
#Change path according to your Android Sdk installation directory
Run Code Online (Sandbox Code Playgroud)
然后重新打开终端以反映更改。
这也避免了弄乱系统文件的需要。
adb可能您的系统中的两个不同位置有两个版本。运行的服务器版本是39,adb客户端版本是40。adb您可以通过在电脑中只保留一个来解决此问题。你可以如下图算出——
在 Linux 中,如果 adb 二进制文件添加到路径,则以下命令会为您提供 adb 位置。
which adb
Run Code Online (Sandbox Code Playgroud)
如果adb未添加到路径中,但仍然收到此错误,则使用以下命令搜索 adb。
locate adb
Run Code Online (Sandbox Code Playgroud)
如果您的adb客户端不在上述位置,您可以将最新版本添加到上述路径并删除旧的 adb 版本。
如果您使用的是 Windows,您可以找出两个 adb 位置并仅保留在一个位置。
我在运行adb devices命令时遇到同样的问题。
adb devices
List of devices attached
adb server version (36) doesn't match this client (40); killing...
* daemon started successfully
2322dc3d device
Run Code Online (Sandbox Code Playgroud)
我运行which adb了一个命令,该命令为我提供了上一个命令正在使用的adb的位置,在我的情况下,输出为:
which adb
/usr/bin/adb
Run Code Online (Sandbox Code Playgroud)
然后我运行了whereis adb命令,该命令给了我adb的位置:
whereis adb
adb: /usr/bin/adb /home/arefin/Android/Sdk/platform-tools/adb
/usr/share/man/man1/adb.1.gz
Run Code Online (Sandbox Code Playgroud)
我通过/usr/bin使用以下mv命令从目录中移动adb来解决此问题:
/usr/bin$ `sudo mv adb /home/arefin/Desktop/`
Run Code Online (Sandbox Code Playgroud)
此后,我执行了此命令,adb kill-server然后执行了adb devices。我发现这次一切都很好。
文件中我与Android开发相关的路径$HOME/.profile如下:
export ANDROID_HOME=/home/arefin/Android/Sdk
export PATH=$PATH:$ANDROID_HOME/platform-tools
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$JAVA_HOME/bin
Run Code Online (Sandbox Code Playgroud)
我知道这有点老了,但如果您遇到此问题并且安装了 Vysor,那么您可以通过在 Vysor 应用程序文件夹中查找 adb.exe(和 Adb*.dll 文件)并将它们替换为您的Android SDK 文件夹。我在 Windows 机器上,我的相关路径是:
在我的机器上,相关文件是:
之后,您将需要终止现有的 ADB 任务,如本文其他答案中所述。
解决了
在Android Studio中打开终端
adb 终止服务器
sudo cp ~/Android/Sdk/platform-tools/adb /usr/bin/adb
须藤 chmod +x /usr/bin/adb
adb 启动服务器
| 归档时间: |
|
| 查看次数: |
17278 次 |
| 最近记录: |