ubuntu 多个ADB冲突问题
问题现象
安装应用失败,卡界面 Performing Streamed Install

起因
Ubuntu系统重装后,通过命令安装一个adb版本
sudo apt update
sudo apt upgrade
步骤2.在Ubuntu 20.04上安装ADB和Fastboot。
运行以下命令以在Ubuntu系统上安装ADB Fastboot二进制文件:
sudo apt install android-tools-adb
sudo apt install android-tools-fastboot
您可以使用以下命令检查ADB版本:
$ adb version
Android Debug Bridge version 1.0.46
Revision 1:7.0.0+r35-2
安装Android studio会默认下载SDK,默认自带ADB,目录为 /home/zbc/Android/Sdk/platform-tools/adb

Android studio运行后,会默认拉起SDK目录下的adb
但是控制台上的adb是系统adb,位于

执行前

执行后

当前界面

系统卡在 Performing Streamed Install
主要的问题点是,系统原有adb已经占用了adb默认端口,后启动的adb无法通过这个端口进行通讯。导致通讯失败。
解决方案
cd /usr/bin
sudo rm adb
//建立软连接到SDK adb
sudo ln -s SDK/{adb} adb参考:
软连接:类似快捷方式。注意必须写绝对路径,否则cp后会出错。可以跨文件系统、能连接到目录
硬连接:指向相同的inode。不可以跨文件系统、不能连接到目录
创建软连接:ln -s(必须) 源文件绝对路径 连接文件名
创建硬连接:ln 文件路径 连接文件名
查看inode信息:ll -i 文件名
ADB 调试
https://blog.csdn.net/weixin_38140931/article/details/104027961

问题现象 ADB 报错端口被占用

adb devices
// 报错如下,ADB 被占用
adb: failed to check server version: protocol fault (couldn't read status): Connection reset by peer主要问题是设备电脑ADB 端口5037被占用导致的,需要杀死占用端口的进程即可
检查并结束占用 5037 端口的进程:
-
打开命令提示符或终端,运行以下命令以查找占用 5037 端口的进程:CSDN Blog+1CSDN Blog+1
-
Windows:
nginx netstat -aon | findstr "5037" -
macOS/Linux:
css lsof -i :5037

-
-
结束该进程:CSDN Blog
-
Windows:
php-template taskkill /PID <PID> /F -
macOS/Linux:
kill -9 <PID> -
重新执行adb命令可以解决问题
-
如果有需要可以
更改 ADB 端口号:
-
如果无法结束占用端口的进程,您可以尝试将 ADB 的端口号更改为其他未被占用的端口,例如 5556:
yaml 复制编辑 adb tcpip 5556 -
然后,使用以下命令连接设备:
arduino 复制编辑 adb connect <设备 IP 地址>:5556