使用 Flutter 制作应用程序时如何通过 WiFi 将设备与 ADB 连接?

How to connect a device with ADB over WiFi when making app with Flutter?

使用 Flutter 时,我无法通过 WiFi 将我的 Android phone 连接到 ADB。所有命令,如 "adb devices" 和 "adb connect 192.168.1.1:5555" 打印错误。如何解决?

看来Flutter本身就是"reserving" ADB,不让你用,逼着用"flutter devices"。幸运的是,我找到了 Android Studio 的插件,它以某种方式绕过了它。

  1. 为 Android Studio 安装 "WIFI ADB ULTIMATE" 插件。
  2. 重新启动 Android Studio,但不要打开任何 Flutter 项目。
  3. Start ADB WiFi server on your phone as usual. 但是 "adb connect 192.168.1.1:5555" 还没有。
  4. 在 Android Studio 中打开您的 Flutter 项目,然后在第二个 window 中打开项目的 "Android" 部分(打开主 Java/Kotlin 文件,然后单击 link 应该会在顶部弹出)。
  5. 打开 WIFI ADB ULTIMATE 选项卡(它应该在右侧),输入您的设备 IP,然后单击绿色按钮。
  6. 您现在应该会在 "flutter devices" 中看到您的设备,或者在 Android Studio 的 Flutter 项目中 "run" 按钮右侧的可扩展列表中。

希望对某人有所帮助 ;)

  1. shift + command + . 使隐藏的图书馆可见。
  2. 现在点击Go -> Library -> Android -> sdk
  3. 右键单击 platform-tools,然后单击 New Terminal Tab at Folder
  4. 在终端中键入 ./adb devices 以显示所有连接的设备。
  5. 然后输入您要连接的设备 IP 地址./adb connect 192.168.XXX.XXX

只需三个步骤即可:

  1. 通过 USB 连接:adb tcpip 5555。
  2. 断开 USB,获取 Phone IP 地址设置 > 关于 Phone > 状态。
  3. 现在adb connect 192.168.0.100

我自己在第一次设置 flutter 时也遇到过类似的问题..

我可以通过 wifi 使用 adb 轻松连接我的 android phone 并在 android studio 中调试本机代码,工作完美......使用---

$ adb connect <device-ip>:5555

然而,当我 运行“flutter devices”...或“flutter 运行”时...使用 adb 无线连接的现有设备自动断开连接...

当我在 flutter 调试会话期间尝试连接 adb 时,我在 adb 中收到以下错误 -

ADB server did not ACK
Full server startup log: /tmp/adb.1000.log
Server had pid: 27779
--- adb starting (pid 27779) ---
adb I 07-29 02:24:57 27779 27779 main.cpp:57] Android Debug Bridge version 1.0.39
adb I 07-29 02:24:57 27779 27779 main.cpp:57] Version 1:8.1.0+r23-5~18.04
adb I 07-29 02:24:57 27779 27779 main.cpp:57] Installed as /usr/bin/adb
adb I 07-29 02:24:57 27779 27779 main.cpp:57] 
adb I 07-29 02:24:57 27779 27779 adb_auth_host.cpp:416] adb_auth_init...
adb I 07-29 02:24:57 27779 27779 adb_auth_host.cpp:174] read_key_file '/home/<user>/.android/adbkey'...
adb I 07-29 02:24:57 27779 27779 adb_auth_host.cpp:391] adb_auth_inotify_init...
adb server killed by remote request

在深入研究论坛和博客帖子时...我发现了这里的问题..

似乎 Android Studio 在 Android/ 目录下下载并维护了自己的 adb 副本,并且...顺便说一句,flutter 正在使用它而不是系统提供的二进制文件(/usr/bin/adb 在 linux ) ..

所以在启动自己的 adb 之前,flutter 杀死了 默认的 adb 服务器.... 并在调试会话期间防止其他系统二进制文件 运行。

一旦发现此问题...修复它很简单。我只是将 /adb 符号链接到 /usr/bin/adb 并且一切正常....

或者我们可以只删除两个二进制文件之一并更改所需的环境变量以实现相同的目标。

就我而言,我只是在 Debugger Android Studio 的设置中设置了 使用现有的手动管理服务器。只需确保您的 adb server 在端口 5038 上是 运行,如果不是,请相应地更改它。

如果您不想更改 Android Studio 上的 adb 设置,您可以使用它附带的 adb,通常您会在 platform-tools 目录,你可以创建一个符号 link.

如果你在 Ubuntu:

有一个例子
$ sudo apt remove adb
$ sudo ln -s /home/user/android-sdk/platform-tools/adb /usr/local/bin/
$ adb --version
Android Debug Bridge version 1.0.41
Version 31.0.2-7242960
Installed as /home/user/android-sdk/platform-tools/adb

接下来您只需按照 these steps 来配对您的设备(如果您有 Android 版本 11+)。

我正在使用 visual studio 进行 flutter 应用程序开发,并使用小米 K20 pro 作为我的设备

  1. 在您的手机上启用开发者选项
  2. 在开发者选项中启用无线调试选项
  3. 为您各自的 OS (Mac/Windows/Linux) 安装 adb
    Mac:
  4. 确保您的 PC 和手机处于同一 Wifi 网络
  5. 在关于phone > 状态中查看您手机的IP地址(或者如果您使用的是小米设备,您可以在启用它时直接在无线调试页面上看到它)
  6. 运行 adb connect <第 5 步中的 IP 地址> 例如:adb connect 192.168.0.103.
    注意:对于小米手机,你还需要在最后添加端口号,在启用无线调试页面上显示 例如:adb connect 192.168.0.103:43431

使用 WifiADB 解决方案在 Android Studio 中使用 Flutter:

我的解决方案:

1:如果已经有模拟器running:Stop Emulator。 2:If 您已经安装了 wifi adb,请卸载 Wifi Adb 并重新启动 Android Studio-(无效 Caches/Restart)。

3:安装WifiAdb。

4:将您的设备连接到您的机器(USB 然后启动 wifi adb (确保您的物理设备上已经配置了开发者模式)

启动WIFI ADB

Select Wifi 设备连接

5: 运行 应用程序(到您的设备)..无需断开 USB cable.Once 应用程序成功安装到您的设备上,断开 USB 数据线。 通过 Wifi ADB 连接到您的设备,您现在应该可以毫无问题地通过 wifi 进行热重载。