要解决这个报错首先我们要了解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打包再次压缩了。