UE4 Android联机调试

环境

引擎版本: github 4.20

连接 Android 设备

用 USB 线将 Android 设备连接到电脑上,在设置中打开开发者选项,然后勾选 USB调试

出包

首先需要编译打包工程,注意打包的时候不能勾选 For Distribution 选项(对应的命令行是 -distribute),编译选项最好是 Debug 或者 Development

配置VS

打开 Tools -> Option -> Cross Platform -> C++ -> Android,默认的配置如下

DefaultEnv.png

将他们改成打包 APK 时使用的对应路径,我是用引擎自带的 AndroidWorks 安装的环境,所以改成如图所示

NewEnv.png

添加APK

将打包好的 APK 包添加到 VS 工程中,如图

AddAPK.png

AddAPKResult.png

设置符号路径

右键 TestGame-armv7-es2,在弹出的菜单中选择属性(Properties),在 Additional Symbol Search Paths 里填入 so 路径:[Your Project Path]\Intermediate\Android\APK\jni\armeabi-v7a,如图

SymbolPath.png

设置启动项目

TestGame-armv7-es2 设置为启动项目,如图

StartupProject.png

这时项目配置会自动配好,如果没有那就手动改一下,如图

Configuration.png

调试

按 F5 以调试方式启动 TestGame-armv7-es2,这时候 VS 会自动将 APK 部署到设备上,如图

Deploy.png

部署好之后,VS 调试器会去连接设置,如图

ConnectingDebuger.png

设备上的状态如图

WaitingDebugger.png

这个阶段可能会出现超时等错误连接不上,可以将设备上的 APP 卸载掉然后再重试,连接上之后就可以像调试本地程序一样调试了,如下断点

DebugPoint.png

查看调用堆栈

callstack.png

查看线程信息

threads.png

还有一个 Logcat 窗口可以查看设备上的日志输出

logcat.png

需要注意的是:当在 VS 上结束调试时,设备上的 APP 会继续运行

其他

可惜目前 UE4(4.20) 出的 Android x86 的包不能正常运行,否则可以直接部署到 VS 自带的 x86 Android 模拟器上进行调试