Error while downloading Asset Bundle: CRC Mismatch

Hello.

I can’t update my projects from Unity 2022.3.49f1 to any newer version and from Unity 2021.3.43f1 to any newer version without localization problems.

If a user updates Unity 2022.3.49f1 game to Unity 2022.3.57f1 on his device he gets theese errors on the first launch:

Error while downloading Asset Bundle: CRC Mismatch. Provided 23dff70d, calculated 92c5513f from data. Will not load AssetBundle ‘…/base.apk!/assets/aa/Android/localization-locales_assets_all.bundle’
System.Exception: Unable to load dependent bundle from location Assets/Localization/English (en).asset
UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1:set_OperationException(Exception)
No Locale could be selected:
No Locales were available. Did you build the Addressables?

On the second launch he gets theese errors:

Error while downloading Asset Bundle: CRC Mismatch. Provided 3c8ad9e5, calculated 95c985b3 from data. Will not load AssetBundle ‘…/base.apk!/assets/aa/Android/localization-assets-shared_assets_all.bundle’
UnityWebRequest result : ConnectionError : Request aborted
ResponseCode : 200, Method : GET
url : jar:file:///data/app/~~…/base.apk!/assets/aa/Android/localization-assets-shared_assets_all.bundle

And only on the third launch the game will work fine. On the first launch the game is totally broken.

The problem initially apperared on Unity 2022.3.50f1 and on 2021.3.44f1 and hasn’t been fixed yet. Before this there were no problems with updates.

I tried to clear Library and to update Unity to the newest version and Localization package.

The problem exists on Android and iOS builds.

Please, help me to fix this issue. I really want to update Unity without such problems to my users.

Hello.

I am able to reproduce the bug on empty project.
The cause of the bug is UseUnityWebRequestForLocalBundles.
If this option is disabled there is no problem.
But UseUnityWebRequestForLocalBundles is must have option for Android build because it is much faster and I am absolutelly sure that in early versions of Unity everything was OK.

Please fix.

Temp workaround: disable UseUnityWebRequestForLocalBundles only for Localization-Locales.asset
There will be a small error at the first launch at logs but everything will work.

Hi,
Could you please file a bug report? Unity QA: Building quality with passion
This doesnt sound like a localization bug, it sounds like its something coming from Addressables.

Hi! Have you solved your problem?

现在是2025年10月,我也遇到相同的问题,但经过的研究,我给出了以下解决方案。

CRC错误(修改Unity版本导致的Addressable加载资源错误)

Unloading 5 Unused Serialized files (Serialized files now loaded: 0)
UnloadTime: 1.444458 ms
Error while downloading Asset Bundle: CRC Mismatch. Provided ef3afe7f, calculated 1a8a1b8f from data. Will not load AssetBundle 'file://......./Data/Raw/aa/iOS/161c6cad8d2d02eb63792b6e733f4f6c_unitybuiltinassets_a466858b9a6578b60d3565ba4d1841b4.bundle'
Unloading 12 unused Assets to reduce memory usage. Loaded Objects now: 1725.
Total: 8.029500 ms (FindLiveObjects: 0.082042 ms CreateObjectMapping: 0.047834 ms MarkObjects: 7.831042 ms  DeleteObjects: 0.067792 ms)

描述:使用Unity6000.1.7版本发布游戏1.5版本,修改项目Unity版本为Unity6000.0.59版本,发布游戏2.0版本。当用户从1.5版本覆盖安装至2.0版本,首次启动时,会报此错误。且部分界面表现为材质丢失(紫色渲染异常)。退出游戏,重启游戏正常。

原因:旧版本打包的编辑器内置资源(默认shader等)包,以及CRC使用了缓存。覆盖安装时新旧匹配不上,例如旧CRC无法匹配新bundle。

解决思路:

  1. 方案一:清理缓存。或者不适用WebRequest。
  2. 方案二:取消CRC缓存,或禁用CRC。(在Group的设置)
  3. 方案三:内置资源包构建命名规则更改。(在Addressable设置界面)
    1. 设置内置资源包、mono脚本包的前缀名称为自定义名称(小写单词+下划线)。
    2. 设置share包所属组为自定义组(如果没有,则新建专门一个组)
    3. 测试结果:成功解决
  4. 方案四:勾选"Unique Bundle IDs"。测试失败,任然报错。

解决过程:采用方案三

  1. 打开Addressable的设置界面。
  2. 找打Shared Bundle Settings,Built in Bundle Naming Prefx,MonoScript Bundle Naming Prefix,三个项。
  3. 设置内置资源包、mono脚本包的前缀名称为自定义名称(小写单词+下划线)。
  4. 设置share包所属组为自定义组(如果没有,则新建专门一个组)
  5. 测试结果:成功解决

原因深度追查

  1. 找到游戏v1.5历史打包时的内置资源包名称(路径Data\Raw\aa\iOS
    1. 161c6cad8d2d02eb63792b6e733f4f6c_unitybuiltinassets_a466858b9a6578b60d3565ba4d1841b4.bundle
    2. 161c6cad8d2d02eb63792b6e733f4f6c_monoscripts_36409c3c4df996bd31e7270697fc078e.bundle
    3. 如上是内置资源+mono脚本的资源包。默认是使用项目名称(实际应该是计算项目名称的md5或其他及算法方式),所属在默认组的设置。
  2. 找到游戏v2.0版本打包时的内置资源包名称(此版本修改了Unity版本)
    1. 161c6cad8d2d02eb63792b6e733f4f6c_unitybuiltinassets_a466858b9a6578b60d3565ba4d1841b4.bundle
    2. 161c6cad8d2d02eb63792b6e733f4f6c_monoscripts_8c4994ad7a885c81307fa99a65a7c04a.bundle
  3. 结论
    1. mono包会根据代码变化不同。built包则不会,且切换unity版本后任然是相同的。
    2. 切换Unity版本后,内置资源理论上应该会不同,这里相同哈希后缀名应该是Unity版本变化不大。
    3. 疑点:如果两个Unity版本构建的built资源包相同,那么理论上CRC也应该相同,但是实际却是报错CRC
  4. 根据方案四,勾选"Unique Bundle IDs",并重新打包。
    1. 好像并没有效果,mono包和built包名称无变化
  5. 根据方案三,自定义project15_bbproject15_ms前缀,新建专门用于内置资源构建的组,并重新打包
    1. project15_bb_unitybuiltinassets_e776f2978f251b50f2a933f88502ac94.bundle
    2. project15_ms_monoscripts_cd77aca0a7cb547368e7a1e3d6b675ee.bundle
    3. 此次两个内置包名称终于不同了,且测试解决了本次异常问题。

网上方案

Error while downloading Asset Bundle: CRC Mismatch - Unity Engine - Unity Discussions

  1. (待验证)关闭"Use UnityWebRequest for Local……",但是Android几乎必须要用此选项,暂时不考虑。本质就是不使用WebRequest的缓存。

CRC Mismatch - Unity Engine - Unity Discussions

  1. 取消CRC

How to Fix CRC Mismatch - Unity Engine - Unity Discussions

  1. I faced the same issue. I was helped by setting a checkbox in addressable settings Unique Bundle Id’s
    1. 根据评论,他思路是为内置资源包使用唯一。即在Addressable设置中,勾选Unique Bundle IDs"。