一、度盘整合安装包
UE打包Pico用的相关安装包已整合,上传度娘,有需要自取。
#整合包# Pico大空间
链接: https://pan.baidu.com/s/13vO0SRWyeYUBLlp8KrdsUg?pwd=maki 提取码: maki

注意:如果打包4.27版本,请把高版本的SDK和jdk17卸载干净,避免冲突。
二、安装流程
1. EpicGames
安装EpicInstaller虚幻启动器,然后安装对应引擎版本例如UE5.6,再添加Android目标平台,否则无法打包安卓。
报错提示:The Binaries for this Target Platform are not currently installed, would you like to use the Launcher to download them?


1.1 缓存目录 软链接
此小节不影响打包,主要目的:节约C盘空间
Epic的下载设置:
F:/Epic_Engine
F:/Epic_Engine/VaultCache/

软链接
mklink /d C:\Users\Administrator\AppData\Local\UnrealEngine F:\Epic_Engine\UnrealEngine
目的是使用系统级别的快捷方式,文件真实存储地址是在F盘,C盘只有快捷图标。
使用方法:CMD运行mklink指令,
运行mklink命令前,先把C盘的UnrealEngine修改名字,避免无法创建同名快捷方式。
运行mklink命令后,系统在C盘自动创建快捷方式,双击无法进入文件夹,此时再在F盘手动创建UnrealEngine文件夹,
最后把之前C盘的初始UnrealEngine文件夹内数据剪切到F:\Epic_Engine\UnrealEngine文件夹内。
ps.删除C盘快捷键不会删除文件夹内的真实文件数据,毕竟只是普通删除快捷图标,删除后可以重新执行mklink指令创建软连接。
后续Android的缓存文件也可以同样方法操作处理。

2. vs2019 和 vs2022
老项目UE4.27、UE4.26选择vs2019版本,
通过 vs2019.exe 安装启动器,选择 Visual Studio Community 2022,
勾选4小项目: .net桌面开发、使用C++桌面开发、通过Window平台开发、使用C++的游戏开发


3. 安装Java环境
UE5.3及以上版本使用jdk-17,之前UE版本使用 jdk 1.8.0.77 8u77,
中文和英文官方文档 (zh-cn 和 en-us)

UE5.6按官网开发文档说是要jdk-21,但是笔者使用jdk17也能正常打包。(开发文档网址5.5变动)
|---------------|---------------------------|
| UE版本 | Java运行版本 |
| 5.6 | OpenJDK 21.0.3 2024-04-16 |
| 5.5 | OpenJDK 17.0.6 2023-01-17 |
| 5.3-5.4 | OpenJDK 17.0.6 2023-01-17 |
| 5.1-5.2 | Java 1.8 |
| 5.0 | Java 1.8 |
| 4.26.2 - 4.27 | Java 1.8 |
3.0 JDK官网下载地址
下载需要临时注册的账号密码
jdk 1.8
https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html

jdk 17
https://www.oracle.com/java/technologies/downloads/#java17-windows

3.1 环境变量 JAVA_HOME、ANDROID_HOME
系统变量添加以下环境配置,JAVA_HOME按需填写版本,安卓环境可以先复制,下一小结安装AndroidStudio
JAVA_HOME C:\Program Files\Java\jdk1.8.0_77
JAVA_HOME C:\Program Files\Java\jdk-17
ANDROID_HOME D:\SoftProgram\SDK
ANDROID_SDK_HOME D:\SoftProgram\SDK
CLASSPATH %JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
PATH %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools
4. 安装AndroidStudio
UE4.27官方教程地址
https://docs.unrealengine.com/4.27/zh-CN/SharingAndReleasing/Movsbile/Android/Setup/AndroidStudio/
|---------------|--------------------------------------|-------------------------|--------------------|-----------------------------------------------------------------------------------------------------------------------------------------------|
| UE版本 | Android Studio版本 | 最低Android SDK版本 | Android NDK版本 | 备注 |
| 5.6 | Koala 2024.1.2 2024年8月29日 | 推荐版本:SDK 34 最低版本:SDK 26 | NDK r27c | 不同商城对于目标SDK最低版本的要求是不同的,可能与上文有所不同。 |
| 5.5 | Koala 2024.1.2 2024年8月29日 | 推荐版本:SDK 34 最低版本:SDK 34 | NDK r25b | 自2024年8月31日起,Google Play商店要求应用程序针对Android 14进行适配,这需要API级别34。要在该日期之后在Google Play商店发布新应用程序,你必须更新到UE 5.4.4或更高版本以支持目标SDK 34。使用旧版本UE构建的应用程序将无法成功提交 |
| 5.3-5.4 | Flamingo 2022.2.1 Patch 2 2023年5月24日 | SDK 33 | NDK r25b | |
| 5.1-5.2 | Android Studio 4.0 | 推荐版本:SDK 32 最低版本:SDK 30 | NDK r25b | 虽然在系统中编译最低需要SDK 30,但是对于要发布项目的目标设备最低可以使用SDK 26。 |
| 5.0 | Android Studio 4.0 | SDK 23 | NDK r21e | 使用Android文件服务器(AFS)所需的最低SDK版本是26。 |
| 4.26.2 - 4.27 | Android Studio 4.0 | - | NDK r21b | - |
| 4.25 | Android Studio 3.5.3 | | NDK r21b, NDK r20b | |
| 4.21 - 4.24 | - | | NDK r14b | |
4.0 AS官网下载地址
https://developer.android.com/studio/archive?hl=zh-cn 旧版本下载,官网zh-cn有bug,改为英文即可正常显示
https://developer.android.com/studio/archive
Android Studio Koala Feature Drop | 2024.1.2 August 29, 2024
Windows (64-bit): android-studio-2024.1.2.12-windows.exe (1.2 GB)
Android Studio Flamingo | 2022.2.1 Patch 2 May 24, 2023
Windows (64-bit): android-studio-2022.2.1.20-windows.exe (1.0 GB)
Android Studio 4.0 May 28, 2020
Windows IDE only (64-bit): android-studio-ide-193.6514223-windows.exe (914.0 MB)
Android Studio 3.5.3 December 5, 2019
Windows IDE only (64-bit): android-studio-ide-191.6010548-windows.exe (753.9 MB)
4.1 AS 软链接
mklink /D "C:\Users\Administrator\.AndroidStudio4.0" "D:\SoftProgram\.AndroidStudio4.0"
5. 安装SDK Manager
可以在引擎目录 F:\Epic_Engine\UE_5.4\Engine\Extras\Android\SetupAndroid.command
文件中可以查看对应的SDK版本需求ndk版本,
ndk的abcd后缀对应具体版本号

默认版本
jdk1.8 CommandLine-8
F:\Epic_Engine\UE_4.26\Engine\Extras\Android
"platforms:android-28" "build-tools:28.0.3" "cmake:3.10.2.4988404" "ndk:21.4.7075529"
F:\Epic_Engine\UE_4.27\Engine\Extras\Android
"platforms:android-28" "build-tools:28.0.3" "cmake:3.10.2.4988404" "ndk:21.4.7075529"
F:\Epic_Engine\UE_5.0\Engine\Extras\Android
"platforms:android-30 " "build-tools:30.0.3" "cmake:3.10.2.4988404" "ndk:21.4.7075529"
F:\Epic_Engine\UE_5.1\Engine\Extras\Android
"platforms:android-32" "build-tools:30.0.3" "cmake:3.10.2.4988404" "ndk:25.1.8937393"
F:\Epic_Engine\UE_5.2\Engine\Extras\Android
"platforms:android-32" "build-tools:30.0.3" "cmake:3.10.2.4988404" "ndk:25.1.8937393"
UE5.3开始jdk1.8 升级为jdk-17 ,CommandLine-19当前最新
F:\Epic_Engine\UE_5.3\Engine\Extras\Android
"platforms:android-33" "build-tools:33.0.1" "cmake:3.10.2.4988404" "ndk:25.1.8937393"
F:\Epic_Engine\UE_5.4\Engine\Extras\Android
"platforms:android-33" "build-tools:33.0.1" "cmake:3.22.1" "ndk:25.1.8937393"
F:\Epic_Engine\UE_5.5\Engine\Extras\Android
"platforms:android-34" "build-tools:34.0.0" "cmake:3.22.1" "ndk:25.1.8937393"
UE5.6 升级为jdk-21
F:\Epic_Engine\UE_5.6\Engine\Extras\Android
"platforms:android-34" "build-tools:35.0.1" "cmake:3.22.1" "ndk:27.2.12479018"
兼容版本
安装android-30 也能向下兼容UE4.26 4.27的apk打包,如果29.0.2如果在SDK manager未勾选安装,打包时会自动下载。

jdk1.8 CommandLine-8
UE4.26 Android API 30 30.0.3 29.0.2 NDK21.4.7075529
UE4.27 Android API 30 30.0.3 29.0.2 NDK21.4.7075529
UE5.0 Android API 30 30.0.3 29.0.2 NDK21.4.7075529
UE5.1 Android API 32 30.0.3 29.0.2 NDK25.1.8937393
UE5.2 Android API 32 30.0.3 29.0.2 NDK25.1.8937393 cmake;3.10.2.4988404(上同)
UE5.3开始jdk1.8 升级为jdk-17 ,CommandLine-19当前最新
UE5.3 Android API 33 33.0.1 NDK25.1.8937393 cmake: 3.10.2.4988404
UE5.4 Android API 33 33.0.1 NDK25.1.8937393 cmake: 3.22.1
UE5.5 Android API 34 34.0.0 NDK25.1.8937393 cmake: 3.22.1
UE5.5的配置可以向上兼容UE5.6
UE5.6 Android API 34 34.0.0 NDK25.1.8937393 cmake: 3.22.1
配置勾选示例图
勾选配置前,先把最新版的android 36 卸载,避免打包冲突。
示例图中勾选这么多选项是因为测试打包兼容性,已测试可以正常打包UE5.2~UE5.6的apk,
最先使用UE5.4的官方默认配置,"platforms:android-33" "build-tools:33.0.1" "cmake:3.22.1" "ndk:25.1.8937393"
然后打包UE5.2~5.6的版本时,编辑器自动下载。
platforms Android API

build-tools

NDK

Commandline

cmake

SDK/API 版本对应表

6. UE项目Android设置
Pico 开发文档的Android环境设置,截图中以UE5.4为参考。

Pico官方配置Android SDK
https://developer-cn.picoxr.com/document/unreal/create-unreal-project/#ae0fbaa7?

7. 打包时Gradle
7.0 Gradle下载
打包apk时,会根据引擎版本下载对应的Gradle版本
UE4.26~UE5.2 gradle-6.1.1 Downloading https://services.gradle.org/distributions/gradle-6.1.1-all.zip
UE5.3 ~UE5.4 gradle-7.5 Downloading https://services.gradle.org/distributions/gradle-7.5-all.zip
UE5.5 ~UE5.6 gradle-8.7 Downloading https://services.gradle.org/distributions/gradle-8.7-all.zip
打包apk到一半,大概率因为网络不稳定,导致gradle下载失败。
使用预先下载好的gradle压缩包,把zip文件放在对应的目录,再一次进行打包apk,此时编辑器识别到文件已下载成功则自动解压进行后续编译。
C:\Users\Administrator\.gradle\wrapper\dists\gradle-8.7-all\aan3ydargesu18aqyqjwhr3pc\gradle-8.7-all.zip
cfmwm155h49vnt3hynmlrsdst gradle-6.1.1-all.zip
6qsw290k5lz422uaf8jf6m7co gradle-7.5-all.zip
aan3ydargesu18aqyqjwhr3pc gradle-8.7-all.zip
文件夹目录如图:

7.1 Gradle 软链接
mklink /D "C:\Users\Administrator\.gradle" "D:\SoftProgram\.gradle"
三、打包Bug记录
笔者在旧电脑安装 android studio 4.0 可以正常打包5.2~5.6的apk,如果需要打包4.27,则需要把高版本的sdk彻底删除,避免冲突。
笔者在新电脑安装 android-studio-2022.2.1.20-windows.exe ,正常打包UE5.4。
如果打包出现问题,请只勾选所需的版本号,其他版本号卸载干净,避免冲突。
SDK Tools 版本
Android SDK Tools 旧版本Android Studio 4.0有这选项,新版本无,不用在意。
Android SDK Platform-Tools,这个版本是在安装AndroidStudio时自动下载最新版本 ,可能导致在新电脑打包UE427旧项目有奇怪bug。

UE4.27打包gradle报错
UE427安卓打包,以前到安卓33版本都正常打包,但是在win10系统重装后,sdk默认安装最新34版本,java环境使用jdk1.8.0.77,
无法打包ue4.27的安卓版本(ue50 51 52都正常打包apk),
4.27的gradle编译提示报错Could not resolve all artifacts for configuration ':classpath'.Could not resolve org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.72.
虚幻论坛近期也有同样的提问,解决方法是更改 java location,把 ProjectSetting项目设置里的android sdk 的 location of java 路径 从C:\Program Files\Java\jdk1.8.0_77 修改为 D:/AndroidStudio/jre ,重新编译就没有报错,可以正常打包安卓了 。
SDK的选项android-30 30.0.3(29.0.2自动下载) ndk21.4(r21e)。
打包成功一次后,再把路径改回C:\Program Files\Java\jdk1.8.0_77,删除项目缓存,也能正常打包。
最后测试 删除"C:\Users\Administrator\.gradle",第1次用jdk1.8路径打包报错,第2次用as的jre路径打包正常。
如图,当时默认下载的版本34,为最新版的Android SDK Platform-Tools

SDK未设置 弹窗警告
UE5.1未识别到系统环境的ndk r25b 25.1.8937393 ,打包时弹出警告如下,忽略弹窗继续执行。 5.2修复该Bug

有时候未安装最新版SDK,兼容使用时也会弹窗警告,忽略弹窗继续执行。

UE5.2 如果SDK Manager未勾选,编辑器也会自动下载对应版本,最好还是按要求勾选SDK Manager的构建版本号

UE4.26修改配置
Android SDK 系统设置中,点击 SDK工具标签,修改Android SDK Command-line Tools 8.0版本
F:\Epic_Engine\UE_4.26\Engine\Extras\Android文件夹下的SetupAndroid.bat
set SDKMANAGER=%STUDIO_SDK_PATH%\cmdline-tools\latest\bin\sdkmanager.bat
替换成
set SDKMANAGER=%STUDIO_SDK_PATH%\cmdline-tools\8.0\bin\sdkmanager.bat


修改sdk中的配置文件package.xml,把obsolete属性改为false 【不确定是否修改】

修改AS的JDK路径
ue4.26版本时环境相关bug,ue5.4打包时可以不修改其相关变量。

配置不同环境脚本
在不同版本引擎的 /Engine/Config/BaseEngine.ini 配置文件中添加其对应的SDK和JDK

[/Script/AndroidPlatformEditor.AndroidSDKSettings]
SDKPath = (Path="D:\SoftProgram\SDK")
NDKPath = (Path="D:\SoftProgram\SDK\ndk\21.4.7075529")
JDKPath = (Path="C:\Program Files\Java\jdk1.8.0_77")