Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

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

Discussion in 'Localization Tools' started by denis_bogdanov, Sep 22, 2021.

  1. denis_bogdanov

    denis_bogdanov

    Joined:
    Apr 20, 2015
    Posts:
    139
    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:<LoadLocales>b__10_0 (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle`1<UnityEngine.Localization.Locale>)
    DelegateList`1<UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle`1<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.ChainOperationTypelessDepedency`1<UnityEngine.Localization.Locale>:OnWrappedCompleted (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle`1<UnityEngine.Localization.Locale>)
    DelegateList`1<UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle`1<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
     
  2. denis_bogdanov

    denis_bogdanov

    Joined:
    Apr 20, 2015
    Posts:
    139
    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...
     
  3. karl_jones

    karl_jones

    Unity Technologies

    Joined:
    May 5, 2015
    Posts:
    8,227
    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.
     
  4. denis_bogdanov

    denis_bogdanov

    Joined:
    Apr 20, 2015
    Posts:
    139
    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?
     
  5. karl_jones

    karl_jones

    Unity Technologies

    Joined:
    May 5, 2015
    Posts:
    8,227
  6. denis_bogdanov

    denis_bogdanov

    Joined:
    Apr 20, 2015
    Posts:
    139
    Cannot find mono image in MonoManager for assmebly 'Unity.Localization'

    Assmebly ? or Assembly? Was it written wrong or I don't understand
     
  7. karl_jones

    karl_jones

    Unity Technologies

    Joined:
    May 5, 2015
    Posts:
    8,227
    Oh yes there's a typo in the error ;). That should make it easier to find in the source code.
     
    denis_bogdanov likes this.
  8. denis_bogdanov

    denis_bogdanov

    Joined:
    Apr 20, 2015
    Posts:
    139
    Hello there
    (Case 1367942) Cannot find mono image in MonoManager for assmebly 'Unity.Localization'
     
    karl_jones likes this.
  9. denis_bogdanov

    denis_bogdanov

    Joined:
    Apr 20, 2015
    Posts:
    139
    Hello

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


    0. Enter Play Mode

    1. Invoke

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

    2. Invoke

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

    3. Exit Play Mode

    4. Drink tea...

    5. 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'
     
    karl_jones likes this.
  10. denis_bogdanov

    denis_bogdanov

    Joined:
    Apr 20, 2015
    Posts:
    139
    Hello there

    Errors on android after the build with this problem:

    MissingMethodException: Default constructor not found for type UnityEngine.ResourceManagement.ResourceManager+CompletedOperation`1[[System.Collections.Generic.IList`1[[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.Action`1[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.Action`1[T] callback, System.Boolean releaseDependenciesOnFailure) (at <00000000000000000000000000000000>:0)
    UnityEngine.AddressableAssets.Addressables.LoadAssetsAsync[TObject] (System.Object key, System.Action`1[T] callback) (at <00000000000000000000000000000000>:0)
    UnityEngine.Localization.AddressablesInterface.LoadAssetsWithLabelInternal[TObject] (System.String label, System.Action`1[T] callback) (at <00000000000000000000000000000000>:0)
    UnityEngine.Localization.AddressablesInterface.LoadAssetsWithLabel[TObject] (System.String label, System.Action`1[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.LocalizedDatabase`2[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+CompletedOperation`1[[System.Collections.Generic.IList`1[[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.Action`1[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.Action`1[T] callback, System.Boolean releaseDependenciesOnFailure) (at <00000000000000000000000000000000>:0)
    UnityEngine.AddressableAssets.Addressables.LoadAssetsAsync[TObject] (System.Object key, System.Action`1[T] callback) (at <00000000000000000000000000000000>:0)
    UnityEngine.Localization.AddressablesInterface.LoadAssetsWithLabelInternal[TObject] (System.String label, System.Action`1[T] callback) (at <00000000000000000000000000000000>:0)
    UnityEngine.Localization.AddressablesInterface.LoadAssetsWithLabel[TObject] (System.String label, System.Action`1[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.LocalizedDatabase`2[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)
    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.Action`1[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+CompletedOperation`1[[System.Collections.Generic.IList`1[[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.Action`1[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.Action`1[T] callback, System.Boolean releaseDependenciesOnFailure) (at <00000000000000000000000000000000>:0)
    UnityEngine.AddressableAssets.Addressables.LoadAssetsAsync[TObject] (System.Object key, System.Action`1[T] callback) (at <00000000000000000000000000000000>:0)
    UnityEngine.Localization.AddressablesInterface.LoadAssetsWithLabelInternal[TObject] (System.String label, System.Action`1[T] callback) (at <00000000000000000000000000000000>:0)
    UnityEngine.Localization.AddressablesInterface.LoadAssetsWithLabel[TObject] (System.String label, System.Action`1[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.AsyncOperationBase`1[TObject].InvokeExecute () (at <00000000000000000000000000000000>:0)
    UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1[TObject].Start (UnityEngine.ResourceManagement.ResourceManager rm, UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle dependency, DelegateList`1[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+<Init>d__10.MoveNext () (at <00000000000000000000000000000000>:0)
    UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at <00000000000000000000000000000000>:0)
    GameController+<StartGame>d__10.MoveNext () (at <00000000000000000000000000000000>:0)
    UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at <00000000000000000000000000000000>:0)
    <StartGame>d__10:MoveNext()
    UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
     
  11. karl_jones

    karl_jones

    Unity Technologies

    Joined:
    May 5, 2015
    Posts:
    8,227
    Those are addressables errors. Please update to the latest patch version of unity.
     
    denis_bogdanov likes this.
  12. denis_bogdanov

    denis_bogdanov

    Joined:
    Apr 20, 2015
    Posts:
    139
    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.
     
  13. karl_jones

    karl_jones

    Unity Technologies

    Joined:
    May 5, 2015
    Posts:
    8,227
    denis_bogdanov likes this.
  14. karl_jones

    karl_jones

    Unity Technologies

    Joined:
    May 5, 2015
    Posts:
    8,227
    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.
     
    denis_bogdanov likes this.