10

我在 WSL 2(Windows 10 2004)中的 Ubuntu 18.04 下运行 Android Studio(当前版本为 3.6.1),现在支持 GUI。由于 WSL2 中的虚拟化不起作用,我需要继续在主机上运行我的模拟器,当然,用于调试我的 android 应用程序的连接设备会出现在主机上。

Android Studio 如何看到主机上出现的模拟器和设备?

4

3 回答 3

12

连接设备有一种方法,但这必须一个一个地完成:

  1. 在 Windows 上:adb tcpip 5555
  2. 在 wsl2 上:adb 连接 [ip 设备]:5555

在 android studio 中您是否应该看到该设备

于 2020-08-21T21:38:30.783 回答
5

这是我根据这篇 Medium 帖子要做的事情。

  1. 在Windows上安装Android Studio(获取SDK,也可以通过其他方式安装SDK)。
  2. 添加adb到 Windows 上的环境变量。在文件资源管理器中,右键单击This PC并选择Advanced system settings,然后Environment Variables.System variables下,查找Path,单击Edit,然后选择New。添加此路径:C:\Users\MYUSERNAME\AppData\Local\Android\Sdk\platform-tools. 确保更改 MYUSERNAME。
  3. 在 WSL2 中安装 Android SDK。在 Android Studio 的 SDK 管理器中,确保您安装了支持您的手机的 SDK(我的旧手机需要旧版 SDK)。
  4. 在 WSL2 中,添加adb到您的 PATH。 你需要确保你adb在 Windows 和 Linux 上使用相同版本的,这就是为什么我在两者上都安装了最新的 Android Studio。 就我而言,我添加alias adb='/home/MYUSERNAME/Android/Sdk/platform-tools/adb'到我的.bashrc.
  5. 确保您的手机已通过 USB 连接到您的 PC,然后您已设置 USB 调试。
  6. 在 Windows 上的 Powershell 中,运行adb devices. 确保设备在那里。
  7. 在 Windows 上的 Powershell 中,运行adb tcpip 5555.
  8. 在 WSL2 终端中,运行adb devices. 您将看不到任何设备,但这将启动adb
  9. 获取手机的 IP 地址。您可以从Settings-> About phone-> Status->执行此操作IP address。它可能会是类似的东西192.168.0.10n
  10. 在 WSL2 终端中,运行adb connect PHONE_ID:5555.
  11. 系统将提示您确认手机上的连接。去做。
  12. adb由于连接确认,可能会失败。在 WSL2 终端中运行adb kill-server,然后运行adb connect PHONE_ID:5555​​.
  13. 如果 Android Studio 在 WSL2 中打开,请将其关闭,然后再次打开。

终于可以调试您的设备了!

于 2021-02-07T05:46:02.703 回答
2

ADB over TCP 对我不起作用。在一个有效的WSL GitHub 问题中找到了这个解决方法,在此处添加了一些额外细节的步骤:

(1) 在 WSL中,添加以下内容~/.bashrc

export WSL_HOST_IP="$(tail -1 /etc/resolv.conf | cut -d' ' -f2)"
export ADB_SERVER_SOCKET=tcp:$WSL_HOST_IP:5037

(2) 添加Windows防火墙规则

  • 打开 Windows Defender 防火墙并转到高级设置。
  • 右键单击“入站规则”,然后单击“新建规则”
  • 选择“端口”,然后选择特定的 TCP 端口“5037”,然后选择“允许连接”
  • 根据您的 Internet 连接的需要检查域、私有和公共(我只添加了域和私有)
  • 将规则命名为适合您的名称
  • 添加防火墙条目后,右键单击它并转到属性
  • 转到范围 -> 远程 IP 地址 -> 添加“172.16.0.0/12”(这是 WSL VM 子网)

(3) 启动 ADB Server(使用特定参数使其监听所有地址)

  • 创建一个 VBS 脚本(例如"C:\Users\user\Documents\Development\wsl_adb_start.vbs")并将以下内容放入其中:
    CreateObject("WScript.Shell").Run "adb.exe kill-server", 0, True
    CreateObject("WScript.Shell").Run "adb.exe -a -P 5037 nodaemon server", 0, True
    
    注意:这假设 adb 在您的路径上。如果没有,请添加完整路径(通常类似于%USERPROFILE%\AppData\Local\Android\Sdk\platform-tools\adb.exe
  • 通过打开 powershell 并执行以下命令来运行脚本:WScript "C:\Users\shuba\Documents\Development\wsl_adb_start.vbs".
  • (重新)-启动 WSL

VBS 脚本调用是每次启动时您必须执行的唯一步骤:您的 WSL 虚拟机将连接到您的主机 ADB 实例。在此之后,启动 WSL 并享受吧!

于 2021-04-02T05:28:17.640 回答