Android 打包¶
一般情况下, MediaPipe4U
能够很容易的和你的项目一起打包发布,但是也有一些限制条件。
限制¶
MediaPipe4U
在 Android 平台只支持Development
和Shipping
打包,不支持DebugGame
打包。MediaPipe4U
只支持arm64
(ARMv8-A
) 平台,不支持其他平台 (如 x64 ) 打包。MediaPipe4U
中的部分插件并不支持 Android 平台,如果开发 Android 项目,必须将其移除,关于平台支持情况,请阅读插件和依赖。
Android 打包配置¶
MediaPipe4U 在以下环境通过打包测试, 建议你使用以下环境打包 Android 工程:
Android Studio
: 2024.3.1。Android SDK
:34Android Build Tools
: 34.0JDK
: 17.0.9NDK
: r25b (25.1.8937393)Gradle
: 8.7
你可以使用 Android Studio 安装 Android SDK、NDK, Build Tools。
在 UE Editor 中打包 Android¶
通过点击 Platform
>> Android
>> Package Project
可以完成打包。
Warning
UE Editor 默认可能使用 DebugGame
打包, MediaPipe4U
由于是预编译插件,不支持此打包模式,请切换到 Development
或 Shipping
模式。
如果使用 Debug Game 打包,你将收到如下错误:
Missing precompiled manifest for 'MediaPipeAndroid', 'XXX\MediaPipeAndroid.precompiled. This module can not be referenced in a monolithic precompiled build, remove this reference or migrate to a fully compiled source build.
UATHelper: Packaging (Android (ASTC)): This module was most likely not flagged during a release for being included in a precompiled build - set 'PrecompileForTargets = PrecompileTargetsType.Any;' in MediaPipeAndroid.Build.cs to override.
关于详细的 Android 打包流程,请 Unreal Engine 官方参考:
Failed to open descriptor file 错误¶
Android 打包部署到真机后,可能出现 Failed to open descriptor file
:
这个问题是 Unreal Engine 的一个祖传错误,没有标准的解决方案,如果出现这个错误, 我们可以尝试如下步骤解决它:
常规处理方法¶
首先,删除构建缓存, 它们是工程根目录下的这些目录:
- Binarires
- Build
- Intermediate
其次,检查如下设置:
- NDK 使用和 Unreal Engine 文档中一致的版本
- 将构建切换到
Development
(如果你正在使用Shipping
) - 在
Project Settings
的Android SDK
中明确设置你本机的 SDK 和 NDK 路径 - 设置 SDK API Level 为
matchndk
最后,重新打包。
使用 AGDE 代替 UE Editor¶
如果上述方案依然无效,那么,可以使用 AGDE 代替 Unreal Engine Editor 打包工程, 步骤如下:
- 安装 AGDE 插件到 Visual Studio
- 删除构建缓存目录:Binarires、Build、Intermediate
- 使用 Visual Studio 编译工程(配置为 Windows, Development),这一步主要为了让工程可以在 UE Editor 中打开。
- 打开 UE Edtitor , 选择
Development
模式 打包 (Package) Android 工程,注意:不要以任何模式运行 Android 工程, 仅执行 Package 。 - 打包完成后关闭 UE Editor。
- 打开 Visual Studio 选择你的真机,选择
Development
模式直接运行调试, 这时 Visual Studio 将开始编译 Android C++ 代码,之后自动部署 APK 到你的 Android 设备。
Tip
AGDE 使用方法可以参考Unreal Engine 官方文档。
AGDE 的主要作用是可以调试 C++ 安卓代码,并且可以通过 VS 来部署代码到设备。
它的缺点是无法调试 Java 代码,如果需要调试 Java 代码,需要使用 Android Studio。