Unity手游EndlessTD启动页后崩溃,求排查解决方案
Unity Android加载场景崩溃排查指引
先解决JDWP调试器加载失败问题
- 重启ADB服务与设备连接:
- 打开命令提示符,依次执行:
adb kill-server adb start-server - 拔掉设备USB线,等待5秒后重新插上,执行
adb devices确认设备能被识别 - 在MIUI开发者选项里找到「USB调试(安全设置)」并开启(这个选项会影响调试权限,默认可能关闭)
- 打开命令提示符,依次执行:
- 强制清理游戏进程:
执行adb shell am force-stop 你的游戏包名(包名在Unity的Player Settings > Identification > Package Name里查看),或者在设备上彻底划掉游戏后台
抓取完整崩溃日志
- 抓取系统日志:
- 命令提示符执行:
adb logcat -v time > crash_log.txt - 启动游戏,等待崩溃后按
Ctrl+C停止日志抓取 - 打开生成的
crash_log.txt,搜索Fatal signal、AndroidRuntime关键词,重点看崩溃前10秒的日志,尤其是libunity.so相关的报错
- 命令提示符执行:
- 启用Unity崩溃报告:
- 在Unity Editor的Player Settings > Android > Publishing Settings里,勾选「Enable Crash Reporting」
- 重新打包安装到设备,触发崩溃后等待3-5分钟,打开Unity的
Window > General > Crash Reporter查看上传的详细崩溃栈
排查场景加载相关问题
- 检查场景加载代码:
确认加载场景用的是SceneManager.LoadScene或SceneManager.LoadSceneAsync,且没有在子线程调用场景加载逻辑 - 排查场景资源与引用:
- 打开崩溃场景,用
Window > Analysis > Memory Profiler分析资源,看是否有超大纹理、模型导致内存溢出 - 检查场景内所有对象的Inspector面板,确认没有「Missing」缺失引用
- 逐个移除场景内的第三方插件对象(如广告、统计SDK),每次移除后测试,定位是否是插件冲突
- 打开崩溃场景,用
- 测试空场景:
- 创建仅含主相机和灯光的空场景,修改启动逻辑让游戏直接加载这个空场景
- 如果空场景不崩溃,就逐步往空场景添加原场景的资源、脚本,每次添加后测试,缩小崩溃范围
检查Unity构建与版本设置
- 调整Android构建参数:
- 在Build Settings里,将「Target API Level」设为「Android 11 (API level 30)」(与你的设备系统版本匹配)
- 暂时关闭「Split Application Binary」选项,重新打包测试
- 如果开启了「Strip Engine Code」,在Player Settings > Android > Publishing Settings > Linker Tags里添加
unityscene、unityengine标签,避免引擎核心代码被误剥离
- 修复项目缓存与设置:
- 执行
Assets > Validate Settings,让Unity自动修复设置错误 - 关闭Unity,删除项目根目录下的
Library文件夹,重新打开项目让Unity重新导入所有资源
- 执行
解析Google Play预发布报告
- 上传Native符号文件:
- 打包时勾选「Export Project」,在导出的Android项目中找到
obj/local/arm64-v8a/libunity.so及对应符号文件 - 登录Google Play Console,进入「Release > App bundle explorer > Downloads > Native debug symbols」上传这些文件,之后就能查看符号化后的完整崩溃栈追踪
- 打包时勾选「Export Project」,在导出的Android项目中找到
内容的提问来源于stack exchange,提问作者soomon
相关产品推荐
相关产品推荐

