Unable to create asset table

Hey,

I have a project using the localization package and I’m having issues creating asset tables, though I am able to make string tables without issue. I did have some unrelated issues with addressables in the project which caused the addressable assets folder to get deleted then restored so it might be related to that. It works fine in a new project.

When creating the asset table, I get the following error after selecting ‘Create’ and selecting a folder:

ArgumentNullException: Value cannot be null.
Parameter name: source
System.Linq.Enumerable.Contains[TSource] (System.Collections.Generic.IEnumerable`1[T] source, TSource value, System.Collections.Generic.IEqualityComparer`1[T] comparer) (at <351e49e2a5bf4fd6beabb458ce2255f3>:0)
System.Linq.Enumerable.Contains[TSource] (System.Collections.Generic.IEnumerable`1[T] source, TSource value) (at <351e49e2a5bf4fd6beabb458ce2255f3>:0)
UnityEditor.AddressableAssets.HostingServices.HostingServicesManager.OnSettingsModification (UnityEditor.AddressableAssets.Settings.AddressableAssetSettings s, UnityEditor.AddressableAssets.Settings.AddressableAssetSettings+ModificationEvent evt, System.Object obj) (at Library/PackageCache/com.unity.addressables@1.18.15/Editor/HostingServices/HostingServicesManager.cs:391)
UnityEditor.AddressableAssets.Settings.AddressableAssetSettings.SetDirty (UnityEditor.AddressableAssets.Settings.AddressableAssetSettings+ModificationEvent modificationEvent, System.Object eventData, System.Boolean postEvent, System.Boolean settingsModified) (at Library/PackageCache/com.unity.addressables@1.18.15/Editor/Settings/AddressableAssetSettings.cs:1512)
UnityEditor.AddressableAssets.Settings.AddressableAssetGroup.SetDirty (UnityEditor.AddressableAssets.Settings.AddressableAssetSettings+ModificationEvent modificationEvent, System.Object eventData, System.Boolean postEvent, System.Boolean groupModified) (at Library/PackageCache/com.unity.addressables@1.18.15/Editor/Settings/AddressableAssetGroup.cs:538)
UnityEditor.AddressableAssets.Settings.AddressableAssetGroup.AddSchema (System.Type type, System.Boolean postEvent) (at Library/PackageCache/com.unity.addressables@1.18.15/Editor/Settings/AddressableAssetGroup.cs:176)
UnityEditor.AddressableAssets.Settings.AddressableAssetSettings.CreateGroup (System.String groupName, System.Boolean setAsDefaultGroup, System.Boolean readOnly, System.Boolean postEvent, System.Collections.Generic.List`1[T] schemasToCopy, System.Type[] types) (at Library/PackageCache/com.unity.addressables@1.18.15/Editor/Settings/AddressableAssetSettings.cs:1838)
UnityEditor.Localization.Addressables.GroupResolver.CreateNewGroup (System.String name, System.Boolean readOnly, UnityEditor.AddressableAssets.Settings.AddressableAssetSettings aaSettings, System.Boolean createUndo) (at Library/PackageCache/com.unity.localization@1.0.0-pre.10/Editor/Addressables/GroupResolver.cs:207)
UnityEditor.Localization.Addressables.GroupResolver.FindOrCreateGroup (System.String name, UnityEditor.AddressableAssets.Settings.AddressableAssetSettings aaSettings, System.Boolean createUndo) (at Library/PackageCache/com.unity.localization@1.0.0-pre.10/Editor/Addressables/GroupResolver.cs:201)
UnityEditor.Localization.Addressables.GroupResolver.GetGroup (System.Collections.Generic.IList`1[T] locales, UnityEngine.Object asset, UnityEditor.AddressableAssets.Settings.AddressableAssetSettings aaSettings, System.Boolean createUndo) (at Library/PackageCache/com.unity.localization@1.0.0-pre.10/Editor/Addressables/GroupResolver.cs:198)
UnityEditor.Localization.Addressables.GroupResolver.AddToGroup (UnityEngine.Object asset, System.Collections.Generic.IList`1[T] locales, UnityEditor.AddressableAssets.Settings.AddressableAssetSettings aaSettings, System.Boolean createUndo) (at Library/PackageCache/com.unity.localization@1.0.0-pre.10/Editor/Addressables/GroupResolver.cs:134)
UnityEditor.Localization.Addressables.AddressableGroupRules.AddAssetTableAsset (UnityEngine.Localization.Tables.LocalizationTable table, UnityEditor.AddressableAssets.Settings.AddressableAssetSettings aaSettings, System.Boolean createUndo) (at Library/PackageCache/com.unity.localization@1.0.0-pre.10/Editor/Addressables/AddressableGroupRules.cs:157)
UnityEditor.Localization.LocalizationTableCollection.AddTableToAddressables (UnityEngine.Localization.Tables.LocalizationTable table, System.Boolean createUndo) (at Library/PackageCache/com.unity.localization@1.0.0-pre.10/Editor/Settings/LocalizationTableCollection.cs:503)
UnityEditor.Localization.LocalizationTableCollection.AddTable (UnityEngine.Localization.Tables.LocalizationTable table, System.Boolean createUndo, System.Boolean postEvent) (at Library/PackageCache/com.unity.localization@1.0.0-pre.10/Editor/Settings/LocalizationTableCollection.cs:220)
UnityEditor.Localization.LocalizationEditorSettings.CreateCollection (System.Type collectionType, System.String tableName, System.String assetDirectory, System.Collections.Generic.IList`1[T] selectedLocales) (at Library/PackageCache/com.unity.localization@1.0.0-pre.10/Editor/Settings/LocalizationEditorSettings.cs:362)
UnityEditor.Localization.LocalizationEditorSettings.CreateAssetTableCollection (System.String tableName, System.String assetDirectory, System.Collections.Generic.IList`1[T] selectedLocales) (at Library/PackageCache/com.unity.localization@1.0.0-pre.10/Editor/Settings/LocalizationEditorSettings.cs:243)
UnityEditor.Localization.UI.TableCreator.CreateCollection () (at Library/PackageCache/com.unity.localization@1.0.0-pre.10/Editor/UI/Tables/TableCreator.cs:186)
UnityEngine.UIElements.Clickable.Invoke (UnityEngine.UIElements.EventBase evt) (at <0e3a02984c324383b31846a6ed7b2744>:0)
UnityEngine.UIElements.Clickable.ProcessUpEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.Vector2 localPosition, System.Int32 pointerId) (at <0e3a02984c324383b31846a6ed7b2744>:0)
UnityEngine.UIElements.Clickable.OnMouseUp (UnityEngine.UIElements.MouseUpEvent evt) (at <0e3a02984c324383b31846a6ed7b2744>:0)
UnityEngine.UIElements.EventCallbackFunctor`1[TEventType].Invoke (UnityEngine.UIElements.EventBase evt) (at <0e3a02984c324383b31846a6ed7b2744>:0)
UnityEngine.UIElements.EventCallbackRegistry.InvokeCallbacks (UnityEngine.UIElements.EventBase evt) (at <0e3a02984c324383b31846a6ed7b2744>:0)
UnityEngine.UIElements.CallbackEventHandler.HandleEvent (UnityEngine.UIElements.EventBase evt) (at <0e3a02984c324383b31846a6ed7b2744>:0)
UnityEngine.UIElements.CallbackEventHandler.HandleEventAtTargetPhase (UnityEngine.UIElements.EventBase evt) (at <0e3a02984c324383b31846a6ed7b2744>:0)
UnityEngine.UIElements.MouseCaptureDispatchingStrategy.DispatchEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <0e3a02984c324383b31846a6ed7b2744>:0)
UnityEngine.UIElements.EventDispatcher.ApplyDispatchingStrategies (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel, System.Boolean imguiEventIsInitiallyUsed) (at <0e3a02984c324383b31846a6ed7b2744>:0)
UnityEngine.UIElements.EventDispatcher.ProcessEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <0e3a02984c324383b31846a6ed7b2744>:0)
UnityEngine.UIElements.EventDispatcher.ProcessEventQueue () (at <0e3a02984c324383b31846a6ed7b2744>:0)
UnityEngine.UIElements.EventDispatcher.OpenGate () (at <0e3a02984c324383b31846a6ed7b2744>:0)
UnityEngine.UIElements.EventDispatcherGate.Dispose () (at <0e3a02984c324383b31846a6ed7b2744>:0)
UnityEngine.UIElements.EventDispatcher.ProcessEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <0e3a02984c324383b31846a6ed7b2744>:0)
UnityEngine.UIElements.EventDispatcher.Dispatch (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel, UnityEngine.UIElements.DispatchMode dispatchMode) (at <0e3a02984c324383b31846a6ed7b2744>:0)
UnityEngine.UIElements.BaseVisualElementPanel.SendEvent (UnityEngine.UIElements.EventBase e, UnityEngine.UIElements.DispatchMode dispatchMode) (at <0e3a02984c324383b31846a6ed7b2744>:0)
UnityEngine.UIElements.UIElementsUtility.DoDispatch (UnityEngine.UIElements.BaseVisualElementPanel panel) (at <0e3a02984c324383b31846a6ed7b2744>:0)
UnityEngine.UIElements.UIElementsUtility.UnityEngine.UIElements.IUIElementsUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr, System.Boolean& eventHandled) (at <0e3a02984c324383b31846a6ed7b2744>:0)
UnityEngine.UIElements.UIEventRegistration.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at <0e3a02984c324383b31846a6ed7b2744>:0)
UnityEngine.UIElements.UIEventRegistration+<>c.<.cctor>b__1_2 (System.Int32 i, System.IntPtr ptr) (at <0e3a02984c324383b31846a6ed7b2744>:0)
UnityEngine.GUIUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr, System.Boolean& result) (at <6ddf8eac3856492ab1b8cf42618915cc>:0)

Any ideas on how to resolve the issue?

Unity 2020.3.3f1
Localization 1.0.0-pre.10
Addressables 1.18.15

Thanks.

So it turns out adding ‘RemoteBuildPath’ and ‘RemoteLoadPath’ to the addressable profile as variables fixes the issue.
Any idea why these are required?

Try running the Addressables Analyzers. We have 3 for localization that fix most common addressable issues. They can be found in the addressable window under tools.

Oh cool, didn’t know about those, thanks

I’m also having an issue with the localize asset event components inspectors, it is only displaying a string instead of an inspector to select the Scriptable Object. Any ideas on that? The Analyzers don’t find anything.

I believe this is sometimes caused by other plugins that intercept the property drawers. Are you using Odin?

1 Like

Well shoot, I am. Any known work arounds?

Found it! Go into the odin preferences → Editor Types, then disable the localization components. you da man @karl_jones

1 Like