Cannot find mono image in MonoManager for assmebly 'Unity.Localization'

Hello

Unity 2020.3.18
Loc 1.0.1
Address 1.19.4

After upgrading from 1.0.0-pre.9-> 1.0.1
When I enter Play mode I get errors:

Cannot find mono image in MonoManager for assmebly ‘Unity.Localization’
UnityEngine.Localization.InitializationOperation:b__10_0 (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle1<UnityEngine.Localization.Locale>) DelegateList1<UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle1<UnityEngine.Localization.Locale>>:Invoke (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle1<UnityEngine.Localization.Locale>) (at Library/PackageCache/com.unity.addressables@1.19.4/Runtime/ResourceManager/Util/DelegateList.cs:69)
UnityEngine.ResourceManagement.ChainOperationTypelessDepedency1<UnityEngine.Localization.Locale>:OnWrappedCompleted (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle1<UnityEngine.Localization.Locale>)
DelegateList1<UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle1<UnityEngine.Localization.Locale>>:Invoke (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle`1<UnityEngine.Localization.Locale>) (at Library/PackageCache/com.unity.addressables@1.19.4/Runtime/ResourceManager/Util/DelegateList.cs:69)
UnityEngine.ResourceManagement.AsyncOperati

Updating other projects went fine

Sequencing:

  1. Open project
  2. Enter Play Mode
  3. Error: Cannot find mono image in MonoManager for assmebly ‘Unity.Localization’
  4. Exit Play Mode
  5. Enter Play Mode
  6. No Error
  7. Addressables → Clear Build All; Addressables → New Build
  8. Go To Step 2…

Yes this is an intermittent error that has been around since 0.9. we are still trying to figure out what’s going on. I think it may be something to do with an assembly reload occuring.
Does it happen every time for you? If so please file a bug report as it’s so far been difficult to reproduce consistently.

Yes, again and again.

I’ll send it, when I have time.

Project in production, is there any way to send part of the project, excluding some folders and files?

You could try this https://bitbucket.org/Unity-Technologies/repro-project-wizard/src/master/

Cannot find mono image in MonoManager for assmebly ‘Unity.Localization’

Assmebly ? or Assembly? Was it written wrong or I don’t understand

Oh yes there’s a typo in the error ;). That should make it easier to find in the source code.

1 Like

Hello there
(Case 1367942) Cannot find mono image in MonoManager for assmebly ‘Unity.Localization’

1 Like

Hello

In a project in which there was no such error, after these actions it appeared

  1. Enter Play Mode

  2. Invoke

[EasyButtons.Button]
void SetLocale(Locale locale)
{
LocalizationSettings.SelectedLocale = locale;
}

  1. Invoke

[EasyButtons.Button]
void Test()
{
text.text = LocalizationSettings.StringDatabase.GetTable(“Main”).GetEntryFromReference(key).GetLocalizedString();
}

  1. Exit Play Mode

  2. Drink tea…

  3. Enter Play Mode

4 errors

  • Cannot find mono image in MonoManager for assmebly ‘Unity.Localization’
  • Cannot find mono image in MonoManager for assmebly ‘Unity.Localization’
  • Cannot find mono image in MonoManager for assmebly ‘Unity.Localization’
  • Cannot find mono image in MonoManager for assmebly ‘Unity.Localization’
1 Like

Hello there

Errors on android after the build with this problem:

MissingMethodException: Default constructor not found for type UnityEngine.ResourceManagement.ResourceManager+CompletedOperation1[[System.Collections.Generic.IList1[[UnityEngine.Localization.Locale, Unity.Localization, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]
System.RuntimeType.CreateInstanceMono (System.Boolean nonPublic) (at <00000000000000000000000000000000>:0)
System.Activator.CreateInstance (System.Type type, System.Boolean nonPublic) (at <00000000000000000000000000000000>:0)
UnityEngine.ResourceManagement.Util.LRUCacheAllocationStrategy.New (System.Type type, System.Int32 typeHash) (at <00000000000000000000000000000000>:0)
UnityEngine.ResourceManagement.ResourceManager.CreateOperation[T] (System.Type actualType, System.Int32 typeHash, UnityEngine.ResourceManagement.Util.IOperationCacheKey cacheKey, System.Action1[T] onDestroyAction) (at <00000000000000000000000000000000>:0) UnityEngine.ResourceManagement.ResourceManager.CreateCompletedOperationInternal[TObject] (TObject result, System.Boolean success, System.Exception exception, System.Boolean releaseDependenciesOnFailure) (at <00000000000000000000000000000000>:0) UnityEngine.ResourceManagement.ResourceManager.CreateCompletedOperationWithException[TObject] (TObject result, System.Exception exception) (at <00000000000000000000000000000000>:0) UnityEngine.AddressableAssets.AddressablesImpl.LoadAssetsAsync[TObject] (System.Object key, System.Action1[T] callback, System.Boolean releaseDependenciesOnFailure) (at <00000000000000000000000000000000>:0)
UnityEngine.AddressableAssets.Addressables.LoadAssetsAsync[TObject] (System.Object key, System.Action1[T] callback) (at <00000000000000000000000000000000>:0) UnityEngine.Localization.AddressablesInterface.LoadAssetsWithLabelInternal[TObject] (System.String label, System.Action1[T] callback) (at <00000000000000000000000000000000>:0)
UnityEngine.Localization.AddressablesInterface.LoadAssetsWithLabel[TObject] (System.String label, System.Action1[T] callback) (at <00000000000000000000000000000000>:0) UnityEngine.Localization.Settings.LocalesProvider.get_PreloadOperation () (at <00000000000000000000000000000000>:0) UnityEngine.Localization.Settings.LocalizationSettings.GetSelectedLocaleAsync () (at <00000000000000000000000000000000>:0) UnityEngine.Localization.Settings.LocalizationSettings.get_SelectedLocaleAsync () (at <00000000000000000000000000000000>:0) UnityEngine.Localization.Settings.LocalizedDatabase2[TTable,TEntry].GetTableAsync (UnityEngine.Localization.Tables.TableReference tableReference, UnityEngine.Localization.Locale locale) (at <00000000000000000000000000000000>:0)
UnityEngine.Localization.Settings.LocalizedDatabase`2[TTable,TEntry].GetTableEntryAsync (UnityEngine.Localization.Tables.TableReference tableReference, UnityEngine.Localization.Tables.TableEntryReference tableEntryReference, UnityEngine.Localization.Locale locale, UnityEngine.Localization.Settings.FallbackBehavior fallbackBehavior) (at <00000000000000000000000000000000>:0)
UnityEngine.Localization.LocalizedString.HandleLocaleChange (UnityEngine.Localization.Locale _) (at <00000000000000000000000000000000>:0)
UnityEngine.Localization.LocalizedString.ForceUpdate () (at <00000000000000000000000000000000>:0)
UnityEngine.Localization.LocalizedString.add_StringChanged (UnityEngine.Localization.LocalizedString+ChangeHandler value) (at <00000000000000000000000000000000>:0)

MissingMethodException: Default constructor not found for type UnityEngine.ResourceManagement.ResourceManager+CompletedOperation1[[System.Collections.Generic.IList1[[UnityEngine.Localization.Locale, Unity.Localization, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]
System.RuntimeType.CreateInstanceMono (System.Boolean nonPublic) (at <00000000000000000000000000000000>:0)
System.Activator.CreateInstance (System.Type type, System.Boolean nonPublic) (at <00000000000000000000000000000000>:0)
UnityEngine.ResourceManagement.Util.LRUCacheAllocationStrategy.New (System.Type type, System.Int32 typeHash) (at <00000000000000000000000000000000>:0)
UnityEngine.ResourceManagement.ResourceManager.CreateOperation[T] (System.Type actualType, System.Int32 typeHash, UnityEngine.ResourceManagement.Util.IOperationCacheKey cacheKey, System.Action1[T] onDestroyAction) (at <00000000000000000000000000000000>:0) UnityEngine.ResourceManagement.ResourceManager.CreateCompletedOperationInternal[TObject] (TObject result, System.Boolean success, System.Exception exception, System.Boolean releaseDependenciesOnFailure) (at <00000000000000000000000000000000>:0) UnityEngine.ResourceManagement.ResourceManager.CreateCompletedOperationWithException[TObject] (TObject result, System.Exception exception) (at <00000000000000000000000000000000>:0) UnityEngine.AddressableAssets.AddressablesImpl.LoadAssetsAsync[TObject] (System.Object key, System.Action1[T] callback, System.Boolean releaseDependenciesOnFailure) (at <00000000000000000000000000000000>:0)
UnityEngine.AddressableAssets.Addressables.LoadAssetsAsync[TObject] (System.Object key, System.Action1[T] callback) (at <00000000000000000000000000000000>:0) UnityEngine.Localization.AddressablesInterface.LoadAssetsWithLabelInternal[TObject] (System.String label, System.Action1[T] callback) (at <00000000000000000000000000000000>:0)
UnityEngine.Localization.AddressablesInterface.LoadAssetsWithLabel[TObject] (System.String label, System.Action1[T] callback) (at <00000000000000000000000000000000>:0) UnityEngine.Localization.Settings.LocalesProvider.get_PreloadOperation () (at <00000000000000000000000000000000>:0) UnityEngine.Localization.Settings.LocalizationSettings.GetSelectedLocaleAsync () (at <00000000000000000000000000000000>:0) UnityEngine.Localization.Settings.LocalizationSettings.get_SelectedLocaleAsync () (at <00000000000000000000000000000000>:0) UnityEngine.Localization.Settings.LocalizedDatabase2[TTable,TEntry].GetTableAsync (UnityEngine.Localization.Tables.TableReference tableReference, UnityEngine.Localization.Locale locale) (at <00000000000000000000000000000000>:0)
UnityEngine.Localization.Settings.LocalizedDatabase2[TTable,TEntry].GetTableEntryAsync (UnityEngine.Localization.Tables.TableReference tableReference, UnityEngine.Localization.Tables.TableEntryReference tableEntryReference, UnityEngine.Localization.Locale locale, UnityEngine.Localization.Settings.FallbackBehavior fallbackBehavior) (at <00000000000000000000000000000000>:0) UnityEngine.Localization.LocalizedString.HandleLocaleChange (UnityEngine.Localization.Locale _) (at <00000000000000000000000000000000>:0) UnityEngine.Localization.LocalizedString.ForceUpdate () (at <00000000000000000000000000000000>:0) UnityEngine.Localization.LocalizedString.add_StringChanged (UnityEngine.Localization.LocalizedString+ChangeHandler value) (at <00000000000000000000000000000000>:0) UnityEngine.Object.Instantiate (UnityEngine.Object original, UnityEngine.Transform parent, System.Boolean instantiateInWorldSpace) (at <00000000000000000000000000000000>:0) UnityEngine.Object.Instantiate[T] (T original, UnityEngine.Transform parent, System.Boolean worldPositionStays) (at <00000000000000000000000000000000>:0) PopupController.OpenDialog[T] (System.String path, System.Action1[T] openCallback) (at <00000000000000000000000000000000>:0)
GameController.Start () (at <00000000000000000000000000000000>:0)
UnityEngine.Object:Instantiate(T, Transform, Boolean)
PopupController:OpenDialog(String, Action`1)
GameController:Start()

MissingMethodException: Default constructor not found for type UnityEngine.ResourceManagement.ResourceManager+CompletedOperation1[[System.Collections.Generic.IList1[[UnityEngine.Localization.Locale, Unity.Localization, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]
System.RuntimeType.CreateInstanceMono (System.Boolean nonPublic) (at <00000000000000000000000000000000>:0)
System.Activator.CreateInstance (System.Type type, System.Boolean nonPublic) (at <00000000000000000000000000000000>:0)
UnityEngine.ResourceManagement.Util.LRUCacheAllocationStrategy.New (System.Type type, System.Int32 typeHash) (at <00000000000000000000000000000000>:0)
UnityEngine.ResourceManagement.ResourceManager.CreateOperation[T] (System.Type actualType, System.Int32 typeHash, UnityEngine.ResourceManagement.Util.IOperationCacheKey cacheKey, System.Action1[T] onDestroyAction) (at <00000000000000000000000000000000>:0) UnityEngine.ResourceManagement.ResourceManager.CreateCompletedOperationInternal[TObject] (TObject result, System.Boolean success, System.Exception exception, System.Boolean releaseDependenciesOnFailure) (at <00000000000000000000000000000000>:0) UnityEngine.ResourceManagement.ResourceManager.CreateCompletedOperationWithException[TObject] (TObject result, System.Exception exception) (at <00000000000000000000000000000000>:0) UnityEngine.AddressableAssets.AddressablesImpl.LoadAssetsAsync[TObject] (System.Object key, System.Action1[T] callback, System.Boolean releaseDependenciesOnFailure) (at <00000000000000000000000000000000>:0)
UnityEngine.AddressableAssets.Addressables.LoadAssetsAsync[TObject] (System.Object key, System.Action1[T] callback) (at <00000000000000000000000000000000>:0) UnityEngine.Localization.AddressablesInterface.LoadAssetsWithLabelInternal[TObject] (System.String label, System.Action1[T] callback) (at <00000000000000000000000000000000>:0)
UnityEngine.Localization.AddressablesInterface.LoadAssetsWithLabel[TObject] (System.String label, System.Action1[T] callback) (at <00000000000000000000000000000000>:0) UnityEngine.Localization.Settings.LocalesProvider.get_PreloadOperation () (at <00000000000000000000000000000000>:0) UnityEngine.Localization.Settings.LocalizationSettings.GetSelectedLocaleAsync () (at <00000000000000000000000000000000>:0) UnityEngine.Localization.InitializationOperation.LoadLocales () (at <00000000000000000000000000000000>:0) UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase1[TObject].InvokeExecute () (at <00000000000000000000000000000000>:0)
UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase1[TObject].Start (UnityEngine.ResourceManagement.ResourceManager rm, UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle dependency, DelegateList1[T] updateCallbacks) (at <00000000000000000000000000000000>:0)
UnityEngine.ResourceManagement.ResourceManager.StartOperation[TObject] (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1[TObject] operation, UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle dependency) (at <00000000000000000000000000000000>:0)
UnityEngine.Localization.Settings.LocalizationSettings.GetInitializationOperation () (at <00000000000000000000000000000000>:0)
UnityEngine.Localization.Settings.LocalizationSettings.get_InitializationOperation () (at <00000000000000000000000000000000>:0)
LocalizationController+d__10.MoveNext () (at <00000000000000000000000000000000>:0)
UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at <00000000000000000000000000000000>:0)
GameController+d__10.MoveNext () (at <00000000000000000000000000000000>:0)
UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at <00000000000000000000000000000000>:0)
d__10:MoveNext()
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)

Those are addressables errors. Please update to the latest patch version of unity.

1 Like

QA Answer:

We are aware of the original issue you have reported, however, it is tracked internally so I cannot provide an issuetracker link to you.

Ok I have made the bug public so you can track it here https://issuetracker.unity3d.com/product/unity/issues/guid/LOC-369

1 Like

Hi we now have a fix for this in the works. Its a bug in the build system so will require fixing in Unity. Keep an eye on the ticket to see what versions the fix is available in when it lands.

1 Like