从项目到真机上的 APK
怎么构建 APK 并装到 Android 手机上?
安装 Android Build Support 模块,把平台切换到 Android,设置一个属于你自己的包名,然后构建。挡住初次构建的多是 Unity 找不到的 SDK 或 JDK 路径;之后才咬人的是用默认的 com.DefaultCompany 包名发布——上了 Google Play 就永远改不了。
把 APK 装进手机是四步,外加两个坑。光走步骤第一次也只要二十分钟;把它拖成一整个下午的,正是这两个坑。
1 — 安装 Android Build Support
- 1
打开 Unity Hub,进入 Installs,点你的 Unity 版本上的齿轮菜单来添加模块。
- 2
勾选 Android Build Support,以及它下面缩进的两项:SDK & NDK Tools 和 OpenJDK。三个都要勾,不是只勾第一个。
- 3
这会下载几个 GB。等它彻底下载完再打开项目,不然平台列表里 Android 还是会显示为不可用。
2 — 切换平台
切换平台会让 Unity 把项目里所有贴图重新导入成 Android 能读的格式。小项目只要一分钟;大项目的话,最好在你去煮咖啡之前就点下去。这事每个平台只发生一次。
- 1
打开 (Unity 6 之前叫 Build Settings),选中 Android,然后点 Switch Platform。
- 2
把你想放进构建里的每个 scene 都打开,然后按 Add Open Scenes。没列在这个清单里的 scene,在构建出来的游戏里就不存在。
- 3
index 0 的 scene 就是游戏启动时进入的那个。它不在最上面的话,把它拖到顶部。
3 — 真正要紧的 Player Settings
Package Name —— 一定要改。默认的 com.DefaultCompany.ProjectName 用来测试安装没问题,但 package name 是你的应用在 Google Play 上永久的身份:应用一旦发布就再也改不了了。
Minimum API Level —— 设成 24 或更高,基本就覆盖了现在还在用的所有手机,还能省掉一大堆兼容性工作。
Scripting Backend 选 IL2CPP,Target Architectures 勾 ARM64 —— Play Store 要求 64 位已经好几年了。只用 Mono 和 ARMv7,上传时会被直接拒掉。
4 — 构建并安装
- 1
在手机上,进 Settings > About 连点 Build number 七次开启 Developer options,然后打开 USB debugging。
- 2
把手机插上,并在手机弹出的 Allow USB debugging 提示里点允许。不点允许,Unity 就不会把你的设备列出来。
- 3
点 Build And Run。.apk 保存到跟 Assets 并列的 Builds 文件夹里,绝对不要放进 Assets 里面 —— 那样 Unity 会把你的构建产物当成 asset 去导入。
APK 还是 AAB?
测试用 APK:就一个文件,发给谁都能直接装上。
上传 Play Store 用 AAB,因为它强制要求。Google 会拿 AAB 自己生成各机型的 APK,所以 AAB 你没办法自己安装。
在 Build Profiles 里勾上 Build App Bundle 就能在两者之间切换。其他设置都不变。
装得上,但一打开就闪退
# Only your app's messages, from the moment you run it.
adb logcat -c && adb logcat Unity:V CRASH:V AndroidRuntime:E '*:S'做出这个的那一课
构建、安装并在真机上调试
这篇指南单独成篇,是一份可以直接照着做的配方。在课程里,同样的东西会作为贯穿全部五个章的那个项目的一部分来搭建 —— 导出到手机,第 05 课。