Ubuntu 下配置 Flutter Android 开发环境时 adb 权限问题

为了让 vscode 能通过 ssh 连接到服务器上的项目并进行编译,降低本地电脑的负载,对闲置的 Ubuntu 进行的配置。

但在 Ubuntu 下使用 vscode 打开项目的时候,出现 daemon 停止工作的提示,查看 log,显示:

[12:32:49 PM] [FlutterDaemon] [Info] <== [{"event":"daemon.logMessage","params":{"level":"error","message":"Unable to run \"adb\", check your Android SDK installation and ANDROID_HOME environment variable: $HOME/Library/Android/SDK/platform-tools/adb"}}]

命令能找到,环境变量也设置了,看这个 log 完全不知道是什么原因。

于是尝试重启 adb server:$ adb start-server出现错误(此时调试手机已经连接到电脑):


有错误就好办,可以针对性的处理了,在 这里有详细的方法。

我嫌他比较麻烦,因为

~ $ lsusb
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0bc2:231a Seagate RSS LLC Expansion Portable
Bus 001 Device 004: ID 152d:9561 JMicron Technology Corp. / JMicron USA Technology Corp. goreche
Bus 001 Device 010: ID 18d1:4ee7 Google Inc. Nexus/Pixel Device (charging + debug)
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 003: ID 1c4f:0002 SiGma Micro Keyboard TRACER Gamma Ivory
Bus 003 Device 002: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

这么多的设备我不想去试,而 sudo adb 又因为 secure_path 没有配置相关的环境变量而找不到文件,于是选择了简单粗暴的解决方法 su - 直接进 root 账户,在 /root 目录下创建到工作用户 ~/Library/Android 的软链接。然后运行 adb devices 显示正确。

退出 root 账户,打开项目,一切都正常了。

P.S.: 今天想到一个更简单粗暴的方法:

cd /usr/local/bin
sudo ln -s $ANDROID_HOME/platform-tools/adb

这样就可以直接使用 sudo adb 命令了。

万事俱备
远程编译中