专栏首页I0ganUE4如何在Linux下编译一个Android
原创

UE4如何在Linux下编译一个Android

这里是在linux上进行编译一个android程序。

参考文档: https://docs.unrealengine.com/4.26/en-US/SharingAndReleasing/Linux/IntermediateLinuxDeveloper/AndroidOnLinux/

UE4使用了个特定的安卓SDK,叫做CodeWorks,官方推荐是不使用原来Android的SDK,采用CodeWorks原因是更好的兼容UE4。

CodeWorks安装

下载codeworks

https://developer.nvidia.com/codeworks-android

需要注册一个nvida帐号才能下载,下载版本为Ubuntu的。

进入引擎目录

mkdir -p Engine/Extras/AndroidWorks

将刚刚下载的CodeWorks-1R8-linux-x64_b181.run放入上面创建目录下。

安装JDK8

在安装之前也要关闭下UE4引擎。

也要安装一下JDK8。

下载jdk8

下载的时候,也需要登录下Orcale

我下的是jdk-8u291-linux-x64.tar.gz

配置

将上面两个下载的文件复制到Engine/Extras/AndroidWorks/Linux下

进入UE4安装目录后

cd Engine/Extras/AndroidWorks

解压jdk8

tar -xzf jdk-8u291-linux-x64.tar.gz 

进入解压生成的目录

pwd
/home/i0gan/programs/UnrealEngine/4.26.2/Engine/Extras/AndroidWorks/jdk1.8.0_291

执行pwd命令查看下当前JAVA_HOME路径。

配置jdk8(好像没有用,可以跳过)

在自己的.bashrc或者.zshrc中设置下java与JAVA_HOME

由于我的是zsh,修改的是.zshrc,若是bash的话修改.bashrc

在文件中加入如下

export JAVA_HOME=/home/i0gan/programs/UnrealEngine/4.26.2/Engine/Extras/AndroidWorks/jdk1.8.0_291
export PATH=$PATH:/home/i0gan/programs/UnrealEngine/4.26.2/Engine/Extras/AndroidWorks/jdk1.8.0_291/bin

重新开个终端测试

echo $JAVA_HOME
/home/i0gan/programs/UnrealEngine/4.26.2/Engine/Extras/AndroidWorks/jdk1.8.0_291

运行CodeWorks

chmod + CodeWorks-1R8-linux-x64_b181.run
./CodeWorks-1R8-linux-x64_b181.run

发现提示必须采用Ubuntu来运行,这只是涉及安装软件而已,开个Ubuntu18的虚拟机安装就可以了。

在ubuntu中点击运行后,不断下一步,不需要安装jd8。需要注意的是,需要得开代理来运行下载,不然下不动。

进入页面如下

这里有个安装和下载目录,默认即可。

这里选择全部,也就是Full下载模式,点击下一步,接受所有LISENCE就可以了。需要注意的是,需要得开代理来下,不然下不动。

下载完毕后在家目录得到

将它复制到主系统的引擎目录下。

mv ~/NVPACK ./Engine/Extras/AndroidWorks  # 这里是在引擎目录下操作的

创建Android项目

采用设置好环境变量的bash启动UE4。

创建一个安卓工程项目。

这里我以下面这个为例子

想要编译出安卓程序,得修改下设置。

Edit->Project Settings -> Android

若报错Engine/Source/ThirdParty/Android/package.xml找不到,这是由于前面我们全删了。

下载xml

下载完毕后将该文件放置在需要文件目录那就行了。

指定SDK和NDK还有JDK路径。

在打包之前要得对资源进行烘培,烘培的时间太长了。。。然后打包报错如下

UATHelper: Packaging (Android (ETC2)): RunUAT ERROR: AutomationTool was unable to run successfully.
PackagingResults: Error: AutomationTool was unable to run successfully.
PackagingResults: Error: Invalid Arguments

搜了半天,什么也没找到解决方案,但我重新将source文件还原,没有报错了,是因为以来的AutomationTool这些工具在该目录下,所以找不到自然报错了。

重新运行./Setup.sh,下载之后,某些.so文件缺失。

没办法编译完整的引擎,只好格式化硬盘重新装引擎了。

安装编译花了半天时间,在这段时间内吧lgx-psp项目移置为gsky游戏服务器,还是挺不错,github链接: https://github.com/pwnsky/gsky

编译完毕引擎启动,发现按照官方文档来是不行的,下载的ndk有点老了,编译报错

官方文档是针对与4.22的,咱们这个4.26。需要ndk版本为 r21- r23的,还好我电脑上有21的ndk,直接调至一下ndk路径就可以了。

这个编译速度真的是慢到了极点。。。。相对于unity3d。。。

编译太大了,磁盘爆满了。。。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • yasio-3.33.0发布了

    距离上一个版本v3.31.3发布,已经过去3个多月,对yasio的维护并没有停歇,v3.33.0主要更新内容如下:

    simdsoft
  • Linux下安装UE4游戏引擎

    官网注册帐号之后绑定github帐号,加入 Epic Games 组织后,即可获得Unreal Engine查看代码权限。

    i0gan
  • Android平台上的Native内存分析

    UE4游戏在Android上的进程内存占用(PSS)很让人困惑, 没有一个清晰直观的方式可以统计到每一部分的内存占用. 所以在做内存分析的过程中顺手做了一个统计...

    逍遥剑客
  • UE工具链配置与开发技巧

    工欲善其事,必先利其器!掌握好的工具会使开发效率上一个层次。 本文是我平时记录在notes中关于UE工具链以及一些组合UE使用的工具配置和使用技巧的笔记整理,后...

    查利鹏
  • 从零教你在Linux环境下(ubuntu)如何编译hadoop2.4

    问题导读: 1.如果获取hadoop src maven包? 2.编译hadoop需要装哪些软件? 3.如何编译hadoop2.4? 扩展: 编译hadoo...

    用户1410343
  • UE4新手编程之创建C++项目

     虚幻4中常用的按键和快捷键 虚幻4中有一些按键和快捷键很常用,牢记它们并运动到实际的项目开发中,将会大大地提高你的工作效率和使得工作更简便快捷。下面将列举它们...

    用户1198337
  • UE4的TSparseArray

    TSparseArray,翻译过来就是稀疏数组,如果写过android程序应该会对这个名字很熟悉,谷歌给android单独做了一个SparseArray容器,其...

    quabqi
  • 开源工具 | 手游自动化框架GAutomator,新增iOS系统和UE4引擎支

    原文链接:https://wetest.qq.com/lab/view/430.html

    WeTest质量开放平台团队
  • UE5:新一代虚幻引擎初探

    终于,在2021年的五月底,UE5终于要推出第一个预览版本了,虚幻引擎5——将于中国时间5月26日周三晚10点开启抢先体验计划!。 对UE5期待许久,去年Nan...

    查利鹏
  • UE工具集:我的开源项目介绍

    工欲善其事必先利其器,本文主要介绍在我在使用UE的过程中开发的一些开源的工具和插件,能够方便地在项目中使用,提高开发效率。之前简单罗列在资源页面里,今天做一个详...

    查利鹏
  • BuildGraph:构建支持多平台打包的二进制引擎

    从EpicGamesLauncher安装的是公版引擎,不能修改代码重新编译,可以在根据选择安装支持的平台、调试符号等。 自己从Github上Clone代码进行编...

    查利鹏
  • 解决虚幻引擎4手游开发难题,腾讯WeTest携GAutomator、APM亮相UOD大会

    WeTest质量开放平台团队
  • 开源工具 | 手游自动化框架GAutomator,新增iOS系统和UE4引擎支持

    GAutomator是腾讯WeTest推出的手游自动化测试框架,已用于腾讯多个手游项目组的自动化测试。 

    WeTest质量开放平台团队
  • UE4像素流如何应用于客户端?

    UE4官方从4.21版嵌入像素流送插件Pixel Streaming,到了4.24版本插件已经做了很大改善,目前使用像素流技术可以在用户非本机的电脑或者服务器上...

    点量小芹DolitQin520
  • UE4的队列TQueue

    TQueue是UE4提供的队列容器,完全满足队列的先进先出性质,这里主要用于多线程同步数据。如果比较了解多线程编程的话,那你肯定知道多线程中最常用的一个容器就是...

    quabqi
  • UE开发的问题笔记和资料辑录

    在平时的开发和学习中遇到和解决的一些问题以及摘录的一些资料,都随手写在了notes中,UE相关的积攒了不少,其他的混在一起比较混乱,整理到本篇文章中。 与UE4...

    查利鹏
  • UE4: 学习虚幻引擎4的16条准则

    大数据文摘
  • 【答疑解惑第九讲】如何在linux下面编译一个简单的c语言程序

    存在问题: 习惯了用IDE,习惯了点击执行按钮。在linux就不能这样了,该咋办? 解决方案: 随着android的大热,在linux下搞开发的人也越来越多,好...

    程序员互动联盟
  • UE热更新:基于UnLua的Lua编程指南

    UE使用的是C++这种编译型语言,在编译之后就成了二进制,只有通过玩家重新安装才能打到更新游戏的目的。但是对于游戏业务而言,对于需求调整和bug修复时间要求非常...

    查利鹏

扫码关注云+社区

领取腾讯云代金券