Skip to content

Android 打包

一般情况下, MediaPipe4U 能够很容易的和你的项目一起打包发布,但是也有一些限制条件。

限制

  1. MediaPipe4U 在 Android 平台只支持 DevelopmentShipping 打包,不支持 DebugGame 打包。
  2. MediaPipe4U 只支持 arm64 (ARMv8-A) 平台,不支持其他平台 (如 x64 ) 打包。
  3. MediaPipe4U 中的部分插件并不支持 Android 平台,如果开发 Android 项目,必须将其移除,关于平台支持情况,请阅读插件和依赖

Android 打包配置

MediaPipe4U 在以下环境通过打包测试, 建议你使用以下环境打包 Android 工程:

UE VERSION Min SDK Version NDK Version JDK Version Gradle
5.1 30 r21e (21.4.7075529) 17 8.x
5.2 30 r25b (25.1.8937393) 17 8.x
5.3 30 r25b (25.1.8937393) 17 8.x
5.4 30 r25b (25.1.8937393) 17 8.x
5.5 34 r25b (25.1.8937393) 17 8.x
5.6 34 r27b (27.1.12297006) 17 8.x

你可以使用 Android Studio 安装 Android SDK、NDK, Build Tools。


在 UE Editor 中打包 Android

通过点击 Platform >> Android >> Package Project 可以完成打包。

Warning

UE Editor 默认可能使用 DebugGame 打包, MediaPipe4U 由于是预编译插件,不支持此打包模式,请切换到 DevelopmentShipping 模式。

如果使用 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 Package

关于详细的 Android 打包流程,请 Unreal Engine 官方参考:

https://dev.epicgames.com/documentation/en-us/unreal-engine/packaging-android-projects-in-unreal-engine

Failed to open descriptor file 错误

Android 打包部署到真机后,可能出现 Failed to open descriptor file

Failed to open descriptor file

这个问题是 Unreal Engine 的一个祖传错误,没有标准的解决方案,如果出现这个错误, 我们可以尝试如下步骤解决它:

常规处理方法

首先,删除构建缓存, 它们是工程根目录下的这些目录:

  • Binarires
  • Build
  • Intermediate

其次,检查如下设置:

  • NDK 使用和 Unreal Engine 文档中一致的版本
  • 将构建切换到 Development (如果你正在使用 Shipping
  • Project SettingsAndroid SDK 中明确设置你本机的 SDK 和 NDK 路径
  • 设置 SDK API Level 为 matchndk

最后,重新打包。

使用 AGDE 代替 UE Editor

如果上述方案依然无效,那么,可以使用 AGDE 代替 Unreal Engine Editor 打包工程, 步骤如下:

  1. 安装 AGDE 插件到 Visual Studio
  2. 删除构建缓存目录:Binarires、Build、Intermediate
  3. 使用 Visual Studio 编译工程(配置为 Windows, Development),这一步主要为了让工程可以在 UE Editor 中打开。
  4. 打开 UE Edtitor , 选择 Development 模式 打包 (Package) Android 工程,注意:不要以任何模式运行 Android 工程, 仅执行 Package 。
  5. 打包完成后关闭 UE Editor。
  6. 打开 Visual Studio 选择你的真机,选择 Development 模式直接运行调试, 这时 Visual Studio 将开始编译 Android C++ 代码,之后自动部署 APK 到你的 Android 设备。

Tip

AGDE 使用方法可以参考Unreal Engine 官方文档

AGDE 的主要作用是可以调试 C++ 安卓代码,并且可以通过 VS 来部署代码到设备。

它的缺点是无法调试 Java 代码,如果需要调试 Java 代码,需要使用 Android Studio。