0
Fixed

Unable to find type: 'UnityEngine.Touch, UnityEngine.CoreModule'

Tim Granlund Marsden 3 weeks ago updated by Lazlo Bonin (Lead Developer) 4 days ago 5 1 duplicate

Hi I am getting the following errors in my project. Please advise

------------------------------------

Failed to deserialize DictionaryAsset#23256 using Odin Serializer.

System.Runtime.Serialization.SerializationException: Deserialization into 'Ludiq.PeekCore.DictionaryAsset' failed. ---> Ludiq.OdinSerializer.SerializationAbortException: Deserialization of type 'Ludiq.PeekCore.DictionaryAsset' aborted. ---> Ludiq.OdinSerializer.SerializationAbortException: An exception of type SerializationException occurred during serialization or deserialization. ---> System.Runtime.Serialization.SerializationException: Unable to find type: 'UnityEngine.Touch, UnityEngine.CoreModule'.

at Ludiq.PeekCore.RuntimeCodebase.DeserializeType (System.String typeName) [0x00011] in C:\Users\Tim\Git\saxoxr_vsts_saxo\SaxoXR.SVE\Saxo VR\Assets\Ludiq\Ludiq.PeekCore\Runtime\Reflection\RuntimeCodebase.cs:148

at Ludiq.PeekCore.SerializationTypeBinder.BindToType (System.String typeName, Ludiq.OdinSerializer.DebugContext debugContext) [0x00001] in C:\Users\Tim\Git\saxoxr_vsts_saxo\SaxoXR.SVE\Saxo VR\Assets\Ludiq\Ludiq.PeekCore\Runtime\Serialization\SerializationTypeBinder.cs:17

at Ludiq.OdinSerializer.TypeFormatter.Read (System.Type& value, Ludiq.OdinSerializer.IDataReader reader) [0x00024] in C:\Users\lazlo\Projects\LudiqOdinSerializer\OdinSerializer\Core\Misc\NodeInfo.cs:72

at Ludiq.OdinSerializer.MinimalBaseFormatter`1[T].Deserialize (Ludiq.OdinSerializer.IDataReader reader) [0x0001e] in C:\Users\lazlo\Projects\LudiqOdinSerializer\OdinSerializer\Core\Misc\DefaultSerializationBinder.cs:82

at Ludiq.OdinSerializer.MinimalBaseFormatter`1[T].Ludiq.OdinSerializer.IFormatter.Deserialize (Ludiq.OdinSerializer.IDataReader reader) [0x00000] in C:\Users\lazlo\Projects\LudiqOdinSerializer\OdinSerializer\Core\Misc\DefaultSerializationBinder.cs:215

at Ludiq.OdinSerializer.BaseDataReader.SkipEntry () [0x00068] in <7e730110e52e4731a8614d1a1e8292cf>:0

at Ludiq.OdinSerializer.SerializationNodeDataReader.ExitArray () [0x00035] in C:\Users\lazlo\Projects\LudiqOdinSerializer\OdinSerializer\Core\DataReaderWriters\SerializationNodes\SerializationNodeDataReader.cs:751

at Ludiq.OdinSerializer.ListFormatter`1[T].DeserializeImplementation (System.Collections.Generic.List`1[T]& value, Ludiq.OdinSerializer.IDataReader reader) [0x0000d] in C:\Users\lazlo\Projects\LudiqOdinSerializer\OdinSerializer\Core\Misc\CustomFormatterAttribute.cs:51

at Ludiq.OdinSerializer.BaseFormatter`1[T].Deserialize (Ludiq.OdinSerializer.IDataReader reader) [0x00021] in C:\Users\lazlo\Projects\LudiqOdinSerializer\OdinSerializer\Core\Formatters\DelegateFormatter.cs:69

--- End of inner exception stack trace ---

at Ludiq.OdinSerializer.DebugContext.LogException (System.Exception exception) [0x00013] in C:\Users\lazlo\Projects\LudiqOdinSerializer\OdinSerializer\Core\Serializers\Serializer.cs:99

at Ludiq.OdinSerializer.UnitySerializationUtility.DeserializeUnityObject (UnityEngine.Object unityObject, Ludiq.OdinSerializer.IDataReader reader) [0x00025] in C:\Users\lazlo\Projects\LudiqOdinSerializer\OdinSerializer\Utilities\Misc\DoubleLookupDictionary.cs:152

--- End of inner exception stack trace ---

at Ludiq.OdinSerializer.UnitySerializationUtility.DeserializeUnityObject (UnityEngine.Object unityObject, Ludiq.OdinSerializer.IDataReader reader) [0x00025] in C:\Users\lazlo\Projects\LudiqOdinSerializer\OdinSerializer\Utilities\Misc\DoubleLookupDictionary.cs:152

at Ludiq.OdinSerializer.UnitySerializationUtility.DeserializeUnityObject (UnityEngine.Object unityObject, Ludiq.OdinSerializer.SerializationData& data, Ludiq.OdinSerializer.DeserializationContext context, System.Boolean isPrefabData, System.Collections.Generic.List`1[T] prefabInstanceUnityObjects) [0x00000] in C:\Users\lazlo\Projects\LudiqOdinSerializer\OdinSerializer\Utilities\Misc\DoubleLookupDictionary.cs:101

at Ludiq.OdinSerializer.UnitySerializationUtility.DeserializeUnityObject (UnityEngine.Object unityObject, Ludiq.OdinSerializer.SerializationData& data, Ludiq.OdinSerializer.DeserializationContext context) [0x00002] in C:\Users\lazlo\Projects\LudiqOdinSerializer\OdinSerializer\Utilities\Misc\DoubleLookupDictionary.cs:83

at Ludiq.PeekCore.Serialization.OdinDeserializeInto[T] (Ludiq.OdinSerializer.SerializationData data, T& instance) [0x00022] in C:\Users\Tim\Git\saxoxr_vsts_saxo\SaxoXR.SVE\Saxo VR\Assets\Ludiq\Ludiq.PeekCore\Runtime\Serialization\Serialization.cs:403

--- End of inner exception stack trace ---

at Ludiq.PeekCore.Serialization.OdinDeserializeInto[T] (Ludiq.OdinSerializer.SerializationData data, T& instance) [0x00060] in C:\Users\Tim\Git\saxoxr_vsts_saxo\SaxoXR.SVE\Saxo VR\Assets\Ludiq\Ludiq.PeekCore\Runtime\Serialization\Serialization.cs:415

at Ludiq.PeekCore.Serialization.OnAfterDeserializeImplementation[T] (T uo, Ludiq.PeekCore.FullSerializationData fullData, Ludiq.OdinSerializer.SerializationData odinData, System.Boolean& deserializationFailed) [0x00058] in C:\Users\Tim\Git\saxoxr_vsts_saxo\SaxoXR.SVE\Saxo VR\Assets\Ludiq\Ludiq.PeekCore\Runtime\Serialization\Serialization.cs:696

UnityEngine.Debug:LogError(Object, Object)

Ludiq.PeekCore.Serialization:OnAfterDeserializeImplementation(LudiqAsset, FullSerializationData, SerializationData, Boolean&) (at Assets/Ludiq/Ludiq.PeekCore/Runtime/Serialization/Serialization.cs:700)

Ludiq.PeekCore.LudiqAsset:UnityEngine.ISerializationCallbackReceiver.OnAfterDeserialize() (at Assets/Ludiq/Ludiq.PeekCore/Runtime/Unity/LudiqAsset.cs:26)

UnityEditor.AssetDatabase:LoadAssetAtPath(String)

Ludiq.PeekCore.AssetUtility:TryLoad(String, DictionaryAsset&) (at Assets/Ludiq/Ludiq.PeekCore/Editor/Utilities/AssetUtility.cs:68)

Ludiq.PeekCore.PluginConfiguration:LoadProjectSettings() (at Assets/Ludiq/Ludiq.PeekCore/Editor/Plugins/PluginConfiguration.cs:287)

Ludiq.PeekCore.PluginConfiguration:Load() (at Assets/Ludiq/Ludiq.PeekCore/Editor/Plugins/PluginConfiguration.cs:47)

Ludiq.PeekCore.PluginConfiguration:Initialize() (at Assets/Ludiq/Ludiq.PeekCore/Editor/Plugins/PluginConfiguration.cs:26)

Ludiq.PeekCore.PluginContainer:Initialize() (at Assets/Ludiq/Ludiq.PeekCore/Editor/Plugins/PluginContainer.cs:219)

Ludiq.PeekCore.PluginContainer:.cctor() (at Assets/Ludiq/Ludiq.PeekCore/Editor/Plugins/PluginContainer.cs:27)

UnityEditor.EditorAssemblies:ProcessInitializeOnLoadAttributes(Type[]) (at C:/buildslave/unity/build/Editor/Mono/EditorAssemblies.cs:108)

Skipping serialization of Ludiq.PeekCore.ProjectSettings (DictionaryAsset) to prevent data loss because it failed to deserialize.

UnityEngine.Debug:LogWarning(Object, Object)

Ludiq.PeekCore.Serialization:OnBeforeSerializeImplementation(LudiqAsset, FullSerializationData&, SerializationData&, Boolean) (at Assets/Ludiq/Ludiq.PeekCore/Runtime/Serialization/Serialization.cs:619)

Ludiq.PeekCore.LudiqAsset:UnityEngine.ISerializationCallbackReceiver.OnBeforeSerialize() (at Assets/Ludiq/Ludiq.PeekCore/Runtime/Unity/LudiqAsset.cs:21)

UnityEditor.AssetDatabase:SaveAssets()

Ludiq.PeekCore.SetupCompletePage:OnShow() (at Assets/Ludiq/Ludiq.PeekCore/Editor/Windows/SetupWizard/SetupCompletePage.cs:61)

Ludiq.PeekCore.Page:Show() (at Assets/Ludiq/Ludiq.PeekCore/Editor/Windows/Page.cs:64)

Ludiq.PeekCore.Wizard:set_currentPage(Page) (at Assets/Ludiq/Ludiq.PeekCore/Editor/Windows/Wizard.cs:33)

Ludiq.PeekCore.<>c__DisplayClass20_0:b__0() (at Assets/Ludiq/Ludiq.PeekCore/Editor/Windows/Wizard.cs:55)

Ludiq.PeekCore.Page:CompleteSwitch() (at Assets/Ludiq/Ludiq.PeekCore/Editor/Windows/Page.cs:38)

Ludiq.PeekCore.Wizard:Update() (at Assets/Ludiq/Ludiq.PeekCore/Editor/Windows/Wizard.cs:91)

UnityEditor.EditorApplication:Internal_CallUpdateFunctions() (at C:/buildslave/unity/build/Editor/Mono/EditorApplication.cs:303)

Unity Version:
Peek Version:

Duplicates 1

Hi Tim,

Sorry you're experiencing this issue.

It seems like the issue is that the Unity Touch input module is not found in the project. 

I'll have to investigate why this happens and add a fallback. 

Can you tell me the exact steps to reproduce this from a blank Unity 2019.2.9f1 project?

In the mean time, here's a very hacky workaround that might work:

  1. Remove line 252 of LudiqCoreConfiguration.cs
  2. Delete Ludiq.Generated/Ludiq.PeekCore/ProjectSettings.asset
  3. Restart Unity

Hi,

SOrry to take so long to get back to you. I am on a deadline so I had to just remove peek from my project to get it to work :-(

I havent had time to add it back and try your workaround.

What is annoying is that a brand new project in 2019.2.9f1 where I add Odin and Peek does not produce the problem. So I assume it is something in my project. It is an android build target project and is working fine without Peek in there.

So I am not sure what  it is in my project but are there any more detail logs I could look at next week?

Thanks

Tim

Need More Information

Hi Tim,

Thanks for following up. Unfortunately, without reproduction steps or a reproduction project, there is nothing I can do to assist you further. Please do let me know if you find some consistency as to when the error happens in the future. I'll leave this issue open in the mean time.

Fixed (Unreleased)

Hi Tim,

Although I haven't been able to reproduce the issue, I removed the part of the configuration that was serializing UnityEngine.Touch as it was useless anyway, so this specific issue shouldn't appear again.