Unity 2021.3.6f1构建AssetBundle时崩溃问题求助
Unity 2021.3.6f1构建AssetBundle时调用BuildPipeline.BuildAssetBundles崩溃(从2019迁移后出现)
问题情况
项目从Unity 2019版本迁移至2021.3.6f1后,调用BuildPipeline.BuildAssetBundles构建AssetBundle时Unity直接崩溃,相同逻辑在2019版本中运行正常。
调用代码
BuildPipeline.BuildAssetBundles( outputPath, assetBundlesBuilds.ToArray(), BuildAssetBundleOptions.ChunkBasedCompression, AssetPreparator.BUILD_TARGET );
崩溃日志(翻译后)
获取到29个堆栈帧 0x00007ff7bf08b84b (Unity) BuildAssetBundlesInternal 0x00007ff7bf08a74a (Unity) BuildAssetBundles 0x00007ff7bdbfe51a (Unity) BuildPipeline_CUSTOM_BuildAssetBundlesWithInfoInternal 0x000002b71e26a6f3 (Mono JIT Code) (wrapper managed-to-native) UnityEditor.BuildPipeline:BuildAssetBundlesWithInfoInternal (string,UnityEditor.AssetBundleBuild[],UnityEditor.BuildAssetBundleOptions,UnityEditor.BuildTargetGroup,UnityEditor.BuildTarget,int) 0x000002b71e26a273 (Mono JIT Code) UnityEditor.BuildPipeline:BuildAssetBundles (string,UnityEditor.AssetBundleBuild[],UnityEditor.BuildAssetBundleOptions,UnityEditor.BuildTargetGroup,UnityEditor.BuildTarget,int) 0x000002b71e269c43 (Mono JIT Code) UnityEditor.BuildPipeline:BuildAssetBundles (string,UnityEditor.AssetBundleBuild[],UnityEditor.BuildAssetBundleOptions,UnityEditor.BuildTarget) 0x000002b71e22b893 (Mono JIT Code) [AssetBundleCreator.cs:87] Editor.AssetBundleBuilder.AssetBundleCreator:buildAssets (string,System.Collections.Generic.List`1<Editor.AssetBundleBuilder.BundlePack>,bool) 0x000002b71e223bcb (Mono JIT Code) [AssetPreparator.cs:194] Editor.AssetBundleBuilder.AssetPreparator:createCharacterAssetBundles
排查建议
- 校验
assetBundlesBuilds数组有效性:检查其中是否存在空资源路径、无效资源引用、重复的AssetBundle名称,2021版本对资源配置的合法性校验更严格。 - 切换压缩方式测试:暂时将
BuildAssetBundleOptions.ChunkBasedCompression替换为UncompressedAssetBundle或LZ4Compression,验证是否是分块压缩的兼容性问题。 - 清理项目缓存:删除项目根目录下的
Library文件夹,重新导入所有资源,版本迁移后的缓存冲突可能导致构建异常。 - 定位问题资源:尝试分批构建AssetBundle,逐步缩小范围,找到触发崩溃的具体资源,检查该资源在2021版本中是否存在格式兼容问题(如旧材质、模型的版本差异)。
- 升级Unity补丁:2021.3.6f1可能存在已知的AssetBundle构建崩溃Bug,建议升级到2021.3系列的更高补丁版本(如2021.3.20f1及以上)。
- 确认BuildTarget配置:检查
AssetPreparator.BUILD_TARGET对应的平台SDK是否安装完整,2021版本对平台依赖的校验更严格。
内容的提问来源于stack exchange,提问作者akvyalkov
相关产品推荐
相关产品推荐

