这里是在linux上进行编译一个android程序。
UE4使用了个特定的安卓SDK,叫做CodeWorks,官方推荐是不使用原来Android的SDK,采用CodeWorks原因是更好的兼容UE4。
下载codeworks
https://developer.nvidia.com/codeworks-android
需要注册一个nvida帐号才能下载,下载版本为Ubuntu的。
进入引擎目录
mkdir -p Engine/Extras/AndroidWorks
将刚刚下载的CodeWorks-1R8-linux-x64_b181.run
放入上面创建目录下。
在安装之前也要关闭下UE4引擎。
也要安装一下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 # 这里是在引擎目录下操作的
采用设置好环境变量的bash启动UE4。
创建一个安卓工程项目。
这里我以下面这个为例子
想要编译出安卓程序,得修改下设置。
Edit->Project Settings -> Android
若报错Engine/Source/ThirdParty/Android/package.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。。。
编译太大了,磁盘爆满了。。。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。