虚幻版Pico大空间VR入门教程 01 ——UE5 Android打包环境4.26~5.6

一、度盘整合安装包

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)

https://dev.epicgames.com/documentation/zh-cn/unreal-engine/android-support-for-unreal-engine?application_version=5.3

https://dev.epicgames.com/documentation/en-us/unreal-engine/android-support-for-unreal-engine?application_version=5.3

UE5.6按官网开发文档说是要jdk-21,但是笔者使用jdk17也能正常打包。(开发文档网址5.5变动)

https://dev.epicgames.com/documentation/zh-cn/unreal-engine/android-development-requirements-for-unreal-engine?application_version=5.6

|---------------|---------------------------|
| 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

https://www.oracle.com/webapps/redirect/signon?nexturl=https://download.oracle.com/otn/java/jdk/8u77-b03/jdk-8u77-windows-x64.exe

jdk 17

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

https://www.oracle.com/webapps/redirect/signon?nexturl=https://download.oracle.com/otn/java/jdk/17.0.16%2B12/91eb813b5d15455fbbf4d46dcf0b9d6a/jdk-17.0.16_windows-x64_bin.exe

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/

https://dev.epicgames.com/documentation/zh-cn/unreal-engine/android-support-for-unreal-engine?application_version=5.3

https://dev.epicgames.com/documentation/zh-cn/unreal-engine/android-development-requirements-for-unreal-engine?application_version=5.6

|---------------|--------------------------------------|-------------------------|--------------------|-----------------------------------------------------------------------------------------------------------------------------------------------|
| 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 版本对应表

https://apilevels.com/

https://developer.android.com/guide/topics/manifest/uses-sdk-element.html?utm_campaign=adp_series_sdkversion_010616&utm_source=medium&utm_medium=blog&hl=zh-cn#ApiLevels

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")
相关推荐
maki0772 小时前
虚幻版Pico大空间VR入门教程 02 —— Pico设备选择
游戏引擎·vr·虚幻·pico
行墨2 小时前
CoordinatorLayout基本使用与分析<五>
android
行墨3 小时前
CoordinatorLayout基本使用与分析<四>
android
行墨3 小时前
CoordinatorLayout基本使用与分析<三>
android
行墨4 小时前
CoordinatorLayout基本使用与分析<二>
android
行墨4 小时前
CoordinatorLayout基本使用与分析<一>
android
tracyZhang5 小时前
Android低版本bitmap native分配实现原理
android·性能优化