前言
尽管我们有能力在非调试模式下通过ADB或者Android Logcat捕捉到程序运行时的日志,但它提供的信息的能力有限,想要更确切的掌握程序的运行状态就必须要进行真机调试,这是开发过程中必不可少的技能。
调试环境
版本: Unity 6
机型: OPPO
安卓版本: Android 13CPU架构:ARMx64
VS版本: 社区版2022
环境搭建
检查VS IDE是否安装支持Unity程序调试的组件
- 点击菜单栏 工具 选项
- 点击 获取工具和功能
- VS 会自动弹出 VS Installar 的修改页面,并停留在 工作负荷 页签
- 切换到 单个组件 页签
- 在搜索组件框中输入 unity
- 确保 Visual Studio Tools for Unity 处于勾选状态
检查手机是否进入开发者选项
不同的手机品牌,操作会有差异,但总体流程一样,这里以OPPO PHJ110为例
- 打开 设置 页面
- 进入 关于本机 页面
- 进入 版本信息 页面
- 连续点击 版本号 N次 直到文字提示 “您已进入开发者模式”
- 返回到 设置 页面
- 进入 其他设置 页面
- 进入 开发者选项 页面
- 打开 开发者选项
- 打开 USB调试 选项
- 在 选择USB配置 选项中,选择 媒体传输协议
当手机的 开发者选项 页面中的 开发者选项 不在激活状态后,其他设置 页面中的 开发者选项 页面的功能入口会隐藏,需要重新操作激活。
构建选项
确保 Platform Settings 中的 Debelopment Build & Script Debugging & Wait For Managed Debugger 处于勾选状态,就可以开始构建Debug包了。
VS 通过选择Unity程序实例进行调试
- 打开 Android APP
- App 会弹出 Debug (Player) 弹窗,并告诉我们调试程序应该连接的 端口号
- 在VS工具栏打开 调试 下拉菜单
- 选择 附加Unity调试程序
- 在 选择Unity实例 弹窗中 选中连接的 Android Player
- 等待VS IDE进入到 调试状态
- 点击App Debug (Player) 弹窗 上的 OK 按钮
VS 通过IP:PORT连接进行调试
- 打开 Android APP
- App 会弹出 Debug (Player) 弹窗,并告诉我们调试程序应该连接的 端口号
- 在VS工具栏打开 调试 下拉菜单
- 选择 附加Unity调试程序
- 在 选择Unity实例 弹窗中,点击 输入IP 按钮
- 在 自定义IP终结点 弹窗中输入 IP地址 和 端口号,然后点击 确定 按钮
- 等待VS IDE进入到 调试状态
- 点击App Debug (Player) 弹窗 上的 OK 按钮
上面两种调试方法,只有中间橘黄色的操作步骤不同,结果是相同的。
FAQ
怎么样获得真机的IP地址?
方法1 通过Unity Android Logcat 获取真机的IP地址
- 打开Unity工具栏中的 Window 下拉菜单
- 打开 Analysis 选项
- 打开 Android Logcat 窗口,确保它已经成功连接到 APP
- 点击 Tag 页签,设置 Unity 选项
- 在日志搜索框中搜索关键字 interfaces on host :
- 选中 Found x interfaces on host: 日志
- 清空 日志搜索框中 的关键字
- 滑动日志找到当前选中的日志
- 在Found x interfaces on host: 日志下方紧跟着n条日志,其中n=x
- 192.168.0.xxx 开头的IP,就是真机使用的本地网络IP
方法2 通过adb工具查询的IP地址
- 打开控制台
- 使用 adb devices 检验手机的连接状态
- 输入下面命令获取 连接手机的 ip地址,选择 192.168.0.xxx 作为调试的连接地址
adb shell ip addr show wlan0
成功附加到程序后VS IDE始终无法进入到调试状态怎么办?
当你成功附加到调试程序后,断点为红色实心的小球,说明进入了调试状态,否则说明IDE还没有进入调试状态。当IDE没有进入到调试状态时,强行开始调试,APP进程会自动挂起,并等待IDE完成调试状态转换。
长时间僵持在这种情况下,只有两种选择,要么杀掉调试进程,让APP运行,要么杀掉APP,结束调试。
这时候很大概率,是因为IDE不具备当下App代码的一种调试能力,我尝试过在ARMx64的真机上构建了ARMv7的Mono版本的App,它可以正常运行,但始终无法进入到调试状态。我的解决办法是构建了IL2CPP的ARMx64版本。如果你也遇到了这样的情况,建议你尝试下,是否跟我是相同的情况。
标签:选项,真机,FAQ,Unity,VS,DEBUG,Android,调试,页面 From: https://blog.csdn.net/UniMark/article/details/140305935