介绍

Unity 直接支持调试 Android 应用

环境

  • Windows 10 21H2
  • Visual Studio Enterprise 2022 17.2.5
  • Unity 2019.4.32f1

IDE 支持

Visual Studio

官方文档中只列举了如何使用 Visual Studio 调试 Android 与 iOS 设备,并没有介绍其他的 IDE,如 Rider。

实测打出来的包使用 Visual Studio 2022 17.2.5 直接就可以调试断点,可以正确地命中断点。

Rider

As of Rider 2021.1, Android USB debugging is not yet supported.

文档中介绍暂时不支持,实测 Rider 2022.1 也不支持。看到相关的讨论与 Ticket 发现问题还没修复。

打包选项

手动打包前需要在 Build Settings 中勾选 DevelopmentScript Debugging 两个选项。

自动打包前需要修改打包选项再调用构建方法:

1
2
var buildOptions = BuildOptions.AllowDebugging | BuildOptions.Development;
BuildPipeline.BuildPlayer(scenes, buildPath, buildTarget, buildOptions);

实测

  1. Unity 打开工程,Edit | Preferences | External Tools | External Script Editor 选择 Visual Studio Enterprise 2022,然后打开使用 Visual Studio 打开工程。

  2. 手机需要开启开发者选项,并开启 USB 调试,然后运行应用。

  3. Visual Studio 中点击 调试 | 附加 Unity 调试程序,在弹出的窗口中选择 AndroidPlayer(USB) 进行调试。

真机

  • Google Pixel 5
  • Android 11

实测上下两行紧挨着的断点,第一个断点命中后继续运行,不会命中第二个断点。

模拟器

  • 夜神模拟器 7.0.2.3
  • Android 9

刚开始断点时,会提示 当前不会命中断点,因为找不到相应的位置 ,等一会儿就会正常。