修复Unity编译时“AAPT2 aapt2-4.1.2-6503028-osx Daemon #0 Failed to shutdown within timeout”错误

要解决这个报错首先我们要了解AAPT是什么东西。

aapt 全称为 Android Asset Packaging Tool,即为Android资源打包工具。作为unity开发人员,一般跟Android打交道比较少,感兴趣的同学可以先去官网学习学习。

问题分析

##aapt2版本

首先4.1.2-6503028是使用appt2 sdk版本。

我们可以在maven仓库查到具体版本信息

https://maven.google.com/web/index.html?q=aapt2#com.android.tools.build:aapt2:4.1.2-6503028

##报错

这类超时问题一般在Unity在出这个问题一般都是资源出了问题。

问题解决

最简单的方式是检查Unity导出的安卓工程中的build.gradle文件中的aaptOptions.noCompress数组是否过程或超过了255,打包文件中的数组长度要求低于255长度。在我们项目开发中,ab包分得细一点就比较容易超过这个上限。即使不超过上限,也比较容易出现打包过程中的timeout问题。

Unity默认设置为

aaptOptions {
        noCompress '.unity3d', '.ress', '.resource', '.obb'**STREAMING_ASSETS**
    }

在输出为build.gradle文件的时候,将StreamingAssets中文件全部放到数组,就比较容易让数组过长,导致编译过慢。但是我们的ab包必须被忽略,否则游戏加载会很慢。

可以取消按文件夹下所有文件忽略,而是按类型忽略。

修改为:

aaptOptions {
        //手动忽略指定文件及.assetbundle文件或.bundle文件
        noCompress = ['.unity3d', '.ress', '.resource', '.obb', '.assetbundle','.bundle']
    }

如果你加载在Android上比IOS慢不少,也可以关注下是不是什么unity中需要的资源被Android打包再次压缩了。

猜你喜欢

转载自blog.csdn.net/weixin_36719607/article/details/126201771