UE 源代码编译+安卓平台打包

发布时间 2023-09-12 22:58:12作者: LOFU

本机win11,安装UE4.27.2版本,配套VS2019

 

源码下载下载虚幻引擎源代码 | 虚幻引擎5.2文档 (unrealengine.com)

1.你需要有一个github账户,一个epic game账户

2.GitHub上的虚幻引擎 - Unreal Engine 关联github和epic game,邮箱确认,这样可以进入到UnrealEngine

3.release里面找到4.27.2版本zip包(clone会下最新的,而且包非常大,很容易断链接),Release Unreal Engine 4.27.2 · EpicGames/UnrealEngine (github.com)按照指示操作替换Engine/Build/Commit.gitdeps.xml文件

 4.VS2019 把和c++开发,游戏开发的包都安装好,注意.NET桌面开发要安装好,机器是win11,所以也安装了c++游戏开发下的对应SDK

5.点击运行Setup.bat,然后运行GenerateProjectFiles.bat

 

源码编译Building Unreal Engine from Source | Unreal Engine 4.27 Documentation

1.资源管理器 右键UE4,选择生成,开始编译

2.我在这里出现编译报错:

1)将“_NOEXCEPT_TYPES_SUPPORTED”定义为预处理器宏,用“0”替换“#if/#elif” UE4 xxxx   和   Your project does not reference ".NETFramework,Version=v4.6.1" framework. Add a reference to xxx    以及   没有将 “_LARGEFILE64_SOURCE”定义为预处理器宏,用“0”替换“#if/#endif” xxxx(有三个类似的)

解决方法:https://blog.csdn.net/qq_39049179/article/details/123736101,上述报错都可以解决
2)fatal error C1060: “编译器的堆空间不足“
解决方法:UE源码下载编译+安卓打包配置及部分补充杂症的解决 - 知乎 (zhihu.com)

电脑->属性->高级系统设置->高级->性能→设置->高级->更改之后。参考图片操作,选择一个空间足够的盘。

3.编译成功以后右键UE4,选择调试-新实例,这时候就能打开界面了

4.新建一个项目以后会自动跳转到VS界面,此时只需要右键你的项目-调试-新实例就能打开对应项目的UE界面了(并不是没有成功orz)

 

安卓打包Setting Up Android SDK and NDK for Unreal | Unreal Engine 4.27 Documentation

1.先按照官方文档走一遍流程

2.参考UE部署到Android以及杂症的解决 - 知乎 (zhihu.com) 

找到C:\Users\你的用户名\.android,新建一个 repositories.cfg 文件

用VScode 打开SetupAndroid.bat ,第75行 

call "%SDKMANAGER%" "platform-tools" "platforms;android-28" "build-tools;28.0.3" "cmake;3.10.2.4988404" "ndk;21.4.7075529" 

重新回到Android Studio,安装SDK Platform:android-32,把比他版本高的删掉,安装build-tools:30.0.0,同样删掉高版本(否则UE会选取latest的时候发生错误)

UE 项目设置-支持平台-Android,有个红红的点击configure now

3.找个USB线链接电脑和你的手机,网上查一下你的手机如何开启USB调试模式,我这里是设置-关于手机-版本信息-点击版本号6次,进入开发者模式打开

4.点击launch就能看到自己的手机了,打包到手机上就可以运行了

打包时如果遇到如下的Error: PackagingResults: Error: cmd.exe failed with args /c “XXXXXX” :app:assembleDebug 大概率是BuildTool的版本问题,按照上述方法再试试

如果你的打包卡在gradle下载,进入Gradle | Releases下载对应的版本zip我这里是6.1.1,放到C:\Users\你的用户名\.gradle\wrapper\dists\gradle-6.1.1-all\cfmwm155h49vnt3hynmlrsdst里

 

感谢上述提及链接各位大佬,让我少掉进了很多坑!