【转载】UE4 安卓打包的一些坑

1,778 阅读3分钟

原文1 链接

原文2 链接

我对原文格式进行了调整,并标注了一些重点

1. adb 常用命令行

adb devices

获取系统版本

adb shell getprop ro.build.version.release

获取系统 api 版本

adb shell getprop ro.build.version.sdk

获取手机相关制造商信息

adb shell getprop | grep "model\|version.sdk\|manufacturer\|hardware\|platform\|revision\|serialno\|product.name\|brand"

卸载应用

输入

adb shell pm list packages

查看设备已有的程序列表,找到需要卸载的程序包名

adb uninstall com.xxx.xxx

2. 移动平台灯光

在移动平台打灯光之前一定要先设置好,以缩小移动端和 PC 上在画面质量上的差异。(这也是一个大大提升移动端画面质量的方法)

image.png

另外移动平台支持的 PPPostProcessing) 仅包括以下(截止4.21):

image.png

3. UE4.19, 4.20 在编译材质的时候异常卡

UE4.19、4.20 巨坑 —— CodeWorksforAndroid 更新

4.20 更新之后,我还是用的 4.18 的 CodeWorksforAndroid ,结果我的电脑里的 4.19,4.20 在编译材质的时候变得巨卡,也不知道是之前 CodeWorksforAndroid 安装的不对的问题还是什么,总之完全没办法进行材质相关的操作,编译一个简单材质要 15-20 秒。

解决方法

卸载 CodeWorksforAndroid ,或者更新到最新版本

4. UE4.21(4.22)打包到一体机上出现报错:ERROR:cmd.exe failed with args /c "XXXXXXXXX/APK\gradle\rungradle.bat" :app:assembleDebug

原因 大概是 UE4 最新的 CoreWork For Android SDK 有问题 不支持 enable gradle 打包

解决方法

  • 更新到更新版本的 Corework , 我现在是 1R7 (这个方法以前有用过,但是用了最新的 WAVE SDK 显示无用)

  • 使用 android studio 的 android sdk 其他的保留 Corework ,如下:

image.png

这个文件夹里面放你需要的 android sdk 版本,这种方法可以正常打包

可能也有用

  • 也有可能是墙的原因,实在没法翻墙可以通过以下方法

打开 build.gradle 文件

文件所在路径参考:

安装的引擎路径 C:\Program Files\Epic Games\UE_4.24\Engine\Build\Android\Java\gradle 或者 自己源码版路径 \Engine\Build\Android\Java\gradle 新增 2 行代码 maven { url 'http://maven.aliyun.com/nexus/content/groups/public/'}google() 前面加(有两处)

  • 也有可能是打包出来的包体积太大导致的(超过 2G 或者是一些 PC 资源不支持安卓)清理掉不需要用到的资源即可

5. UE4 安卓骨骼限制(75根)

改以下源码即可

image.png

6. UE4 安卓 Vulkan 踩坑

一直想试试 Vulkan 渲染器的渲染效果,正好最近有个项目是 Quest 的,支持 Vulkan , 就试了一下

1. 首先 Vulkan 一定需要源码版的 UE4

2. 源码版的 UE4 第一次编译是不包括安卓打包所需要的模块的,所以需要再编译一次 UE4

参考

3. 更新最新的显卡驱动并安装 Vulakn 驱动

参考网址

4. 官方的文档太久远了,所以可以改下图设置

image.png

5. 可选择性关闭 mobileHDR ,可以大幅提升帧率

6. 可用以下材质测试是否启用 Vulkan 渲染

image.png

参考