Continued iOS issues in 1.0.5.1

Issue #194 resolved
Jeremy Bell created an issue

(Sorry, 1.0.5.1 wasn't available in the dropdown otherwise I would have selected it).

Hi team, we're hitting some significant errors on iOS, currently using Unity on Mac OS.

We've seen the issues already reported: #149 and #156

We are running Odin Inspector 1.0.5.1 and have scanned the project and generated the AOT. But there are still errors.

There seems to be three unique error messages, repeated a ton of times in the log, but I'll paste the three main messages below:

<i>iPhonePlayer(Jeremys-iPhone-8):56000</i> NullReferenceException: Object reference not set to an instance of an object.
  at Sirenix.Serialization.DictionaryFormatter`2[TKey,TValue].DeserializeImplementation (System.Collections.Generic.Dictionary`2[TKey,TValue]& value, Sirenix.Serialization.IDataReader reader) [0x00000] in <00000000000000000000000000000000>:0 
  at Sirenix.Serialization.BaseFormatter`1[T].Deserialize (Sirenix.Serialization.IDataReader reader) [0x00000] in <00000000000000000000000000000000>:0 
  at Sirenix.Serialization.ComplexTypeSerializer`1[T].ReadValue (Sirenix.Serialization.IDataReader reader) [0x00000] in <00000000000000000000000000000000>:0 
  at Sirenix.Serialization.UnitySerializationUtility.DeserializeUnityObject (UnityEngine.Object unityObject, Sirenix.Serialization.IDataReader reader) [0x00000] in <00000000000000000000000000000000>:0 
  at Sirenix.Serialization.UnitySerializationUtility.DeserializeUnityObject (UnityEngine.Object unityObject, System.Byte[]& bytes, System.Collections.Generic.List`1[UnityEngine.Object]& referencedUnityObjects, Sirenix.Serialization.DataFormat format, Sirenix.Serialization.DeserializationContext context) [0x00000] in <00000000000000000000000000000000>:0 
  at Sirenix.Serialization.UnitySerializationUtility.DeserializeUnityObject (UnityEngine.Object unityObject, Sirenix.Serialization.SerializationData& data, Sirenix.Serialization.DeserializationContext context, System.Boolean isPrefabData, System.Collections.Generic.List`1[T] prefabInstanceUnityObjects) [0x00000] in <00000000000000000000000000000000>:0 
  at Sirenix.OdinInspector.SerializedMonoBehaviour.UnityEngine.ISerializationCallbackReceiver.OnAfterDeserialize () [0x00000] in <00000000000000000000000000000000>:0 
Sirenix.Serialization.DictionaryFormatter`2:DeserializeImplementation(Dictionary`2&, IDataReader)
Sirenix.Serialization.BaseFormatter`1:Deserialize(IDataReader)
Sirenix.Serialization.ComplexTypeSerializer`1:ReadValue(IDataReader)
Sirenix.Serialization.UnitySerializationUtility:DeserializeUnityObject(Object, IDataReader)
Sirenix.Serialization.UnitySerializationUtility:DeserializeUnityObject(Object, Byte[]&, List`1&, DataFormat, DeserializationContext)
Sirenix.Serialization.UnitySerializationUtility:DeserializeUnityObject(Object, SerializationData&, DeserializationContext, Boolean, List`1)
Sirenix.OdinInspector.SerializedMonoBehaviour:UnityEngine.ISerializationCallbackReceiver.OnAfterDeserialize()

(Filename: currently not available on il2cpp Line: -1)
<i>iPhonePlayer(Jeremys-iPhone-8):56000</i> InvalidOperationException: Invalid binary data stream: could not parse peeked BinaryEntryType byte '0' into a known entry type.
  at Sirenix.Serialization.BinaryDataReader.PeekEntry (System.String& name) [0x00000] in <00000000000000000000000000000000>:0 
  at Sirenix.Serialization.BinaryDataReader.ReadToNextEntry () [0x00000] in <00000000000000000000000000000000>:0 
  at Sirenix.Serialization.BaseDataReader.SkipEntry () [0x00000] in <00000000000000000000000000000000>:0 
  at Sirenix.Serialization.BinaryDataReader.ExitArray () [0x00000] in <00000000000000000000000000000000>:0 
  at Sirenix.Serialization.DictionaryFormatter`2[TKey,TValue].DeserializeImplementation (System.Collections.Generic.Dictionary`2[TKey,TValue]& value, Sirenix.Serialization.IDataReader reader) [0x00000] in <00000000000000000000000000000000>:0 
  at Sirenix.Serialization.BaseFormatter`1[T].Deserialize (Sirenix.Serialization.IDataReader reader) [0x00000] in <00000000000000000000000000000000>:0 
  at Sirenix.Serialization.ComplexTypeSerializer`1[T].ReadValue (Sirenix.Serialization.IDataReader reader) [0x00000] in <00000000000000000000000000000000>:0 
  at Sirenix.Serialization.UnitySerializationUtility.DeserializeUnityObject (UnityEngine.Object unityObject, Sirenix.Serialization.IDataReader reader) [0x00000] in <00000000000000000000000000000000>:0 
  at Sirenix.Serialization.UnitySerializationUtility.DeserializeUnityObject (UnityEngine.Object unityObject, System.Byte[]& bytes, System.Collections.Generic.List`1[UnityEngine.Object]& referencedUnityObjects, Sirenix.Serialization.DataFormat format, Sirenix.Serialization.DeserializationContext context) [0x00000] in <00000000000000000000000000000000>:0 
  at Sirenix.Serialization.UnitySerializationUtility.DeserializeUnityObject (UnityEngine.Object unityObject, Sirenix.Serialization.SerializationData& data, Sirenix.Serialization.DeserializationContext context, System.Boolean isPrefabData, System.Collections.Generic.List`1[T] prefabInstanceUnityObjects) [0x00000] in <00000000000000000000000000000000>:0 
  at Sirenix.OdinInspector.SerializedMonoBehaviour.UnityEngine.ISerializationCallbackReceiver.OnAfterDeserialize () [0x00000] in <00000000000000000000000000000000>:0 
Sirenix.Serialization.BaseFormatter`1:Deserialize(IDataReader)
Sirenix.Serialization.ComplexTypeSerializer`1:ReadValue(IDataReader)
Sirenix.Serialization.UnitySerializationUtility:DeserializeUnityObject(Object, IDataReader)
Sirenix.Serialization.UnitySerializationUtility:DeserializeUnityObject(Object, Byte[]&, List`1&, DataFormat, DeserializationContext)
Sirenix.Serialization.UnitySerializationUtility:DeserializeUnityObject(Object, SerializationData&, DeserializationContext, Boolean, List`1)
Sirenix.OdinInspector.SerializedMonoBehaviour:UnityEngine.ISerializationCallbackReceiver.OnAfterDeserialize()

(Filename: currently not available on il2cpp Line: -1)
<i>iPhonePlayer(Jeremys-iPhone-8):56000</i> Entry of type "Invalid" in node "" is missing a name.
Sirenix.Serialization.UnitySerializationUtility:DeserializeUnityObject(Object, IDataReader)
Sirenix.Serialization.UnitySerializationUtility:DeserializeUnityObject(Object, Byte[]&, List`1&, DataFormat, DeserializationContext)
Sirenix.Serialization.UnitySerializationUtility:DeserializeUnityObject(Object, SerializationData&, DeserializationContext, Boolean, List`1)
Sirenix.OdinInspector.SerializedMonoBehaviour:UnityEngine.ISerializationCallbackReceiver.OnAfterDeserialize()

(Filename: /Users/builduser/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

Is there something we're doing wrong?

Comments (4)

  1. Tor Esa Vestergaard

    Hello Jeremy, and sorry for the trouble you've been having with this.

    I've been investigating a similar issue today and yesterday, and think I've isolated what is happening in that case and implemented a fix. I have a candidate build that contains a fix that should resolve an issue that another user was having in the specific case of a dictionary with an enum as a key or value type. I would like to verify whether or not this build resolves the issue you are having. If you send me your Odin invoice ID at tor@sirenix.net, I will send you the fix candidate build right away.

  2. Jeremy Bell reporter

    Thanks Tor! All errors have now cleared up with the version you sent. (Apologies for the delay, I was away for the weekend)

  3. Log in to comment