DEBUG [1] Android进行真机代码调试&FAQ

前言

        尽管我们有能力在非调试模式下通过ADB或者Android Logcat捕捉到程序运行时的日志,但它提供的信息的能力有限,想要更确切的掌握程序的运行状态就必须要进行真机调试,这是开发过程中必不可少的技能。

调试环境

版本: Unity 6
机型: OPPO
安卓版本: Android 13

CPU架构:ARMx64

VS版本: 社区版2022

环境搭建
检查VS IDE是否安装支持Unity程序调试的组件
  1. 点击菜单栏 工具 选项
  2. 点击 获取工具和功能
  3. VS 会自动弹出 VS Installar 的修改页面,并停留在 工作负荷 页签
  4. 切换到 单个组件 页签
  5. 在搜索组件框中输入 unity
  6. 确保 Visual Studio Tools for Unity 处于勾选状态
检查手机是否进入开发者选项

不同的手机品牌,操作会有差异,但总体流程一样,这里以OPPO PHJ110为例

  1. 打开 设置 页面
  2. 进入 关于本机 页面
  3. 进入 版本信息 页面
  4. 连续点击 版本号 N次 直到文字提示 “您已进入开发者模式
  5. 返回到 设置 页面
  6. 进入 其他设置 页面
  7. 进入 开发者选项 页面
  8. 打开 开发者选项
  9. 打开 USB调试 选项
  10. 选择USB配置 选项中,选择 媒体传输协议

当手机的 开发者选项 页面中的 开发者选项 不在激活状态后,其他设置 页面中的 开发者选项 页面的功能入口会隐藏,需要重新操作激活。

构建选项

确保 Platform Settings 中的 Debelopment Build & Script Debugging & Wait For Managed Debugger 处于勾选状态,就可以开始构建Debug包了。

VS 通过选择Unity程序实例进行调试
  1. 打开 Android APP
  2. App 会弹出 Debug (Player) 弹窗,并告诉我们调试程序应该连接的 端口号
  3. 在VS工具栏打开 调试 下拉菜单
  4. 选择 附加Unity调试程序
  5. 在 选择Unity实例 弹窗中 选中连接的 Android Player
  6. 等待VS IDE进入到 调试状态
  7. 点击App Debug (Player) 弹窗 上的 OK 按钮
VS 通过IP:PORT连接进行调试
  1. 打开 Android APP
  2. App 会弹出 Debug (Player) 弹窗,并告诉我们调试程序应该连接的 端口号
  3. 在VS工具栏打开 调试 下拉菜单
  4. 选择 附加Unity调试程序
  5. 选择Unity实例 弹窗中,点击 输入IP 按钮
  6. 自定义IP终结点 弹窗中输入 IP地址端口号,然后点击 确定 按钮
  7. 等待VS IDE进入到 调试状态
  8. 点击App Debug (Player) 弹窗 上的 OK 按钮

上面两种调试方法,只有中间橘黄色的操作步骤不同,结果是相同的。

FAQ
怎么样获得真机的IP地址?

方法1 通过Unity Android Logcat 获取真机的IP地址

  1. 打开Unity工具栏中的 Window 下拉菜单
  2. 打开 Analysis 选项
  3. 打开 Android Logcat 窗口,确保它已经成功连接到 APP
  4. 点击 Tag 页签,设置 Unity 选项
  5. 在日志搜索框中搜索关键字 interfaces on host :
  6. 选中 Found x interfaces on host: 日志
  7. 清空 日志搜索框中 的关键字
  8. 滑动日志找到当前选中的日志
  9. 在Found x interfaces on host: 日志下方紧跟着n条日志,其中n=x
  10. 192.168.0.xxx 开头的IP,就是真机使用的本地网络IP

方法2 通过adb工具查询的IP地址

  1. 打开控制台
  2. 使用 adb devices 检验手机的连接状态
  3. 输入下面命令获取 连接手机的 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版本。如果你也遇到了这样的情况,建议你尝试下,是否跟我是相同的情况。

        

  • 34
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android开发中,真机调试是一种在真实的Android设备上运行和调试应用程序的方法。为了进行真机调试,您需要完成以下准备工作: 1. 首先,在Android设备上启用USB调试功能。您可以通过以下步骤来启用USB调试: a. 在设备上打开设置并找到"关于手机"选项。 b. 连续点击版本号七次,直到您看到"您已进入开发者模式"的提示。 c. 返回到"设置"主屏幕,点击"系统",然后点击"开发者选项"。 d. 如果您没有看到"开发者选项",请点击"高级选项"。然后点击"开发者选项",并将USB调试开关打开。 2. 然后,您需要在Android Studio中配置您的应用程序以支持真机调试。您可以按照以下步骤进行操作: a. 打开您的项目,并在项目目录中找到build.gradle文件。 b. 在该文件中,找到"android"部分,并在其中的"buildTypes"块中添加以下代码: ``` android { buildTypes { debug { debuggable true } } } ``` c. 保存并关闭build.gradle文件。 3. 现在,您可以将您的Android设备连接到计算机上,并在Android Studio中运行您的应用程序进行调试。确保您的设备已正确连接,并且在Android Studio的设备列表中可见。 通过完成以上步骤,您可以成功进行Android真机调试,并在真实设备上测试和调试您的应用程序。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [【安卓真机调试】较全面的Android真机调试详解](https://blog.csdn.net/huang3513/article/details/126168033)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [真机调试Android](https://blog.csdn.net/qq_45735705/article/details/129201183)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值