在MonoTouch / iOS设备(iPhone / iPad)上使用protobuf-net编译错误

我正在使用protobuf-net v2 beta r450(二进制分发)并使用此处描述的技术提前构建序列化程序集:

http://www.frictionpointstudios.com/blog/2011/3/31/using-protobuf-net-serialization-in-unity-iphone.html

我在Windows上创建了序列化程序集,并在我的MonoTouch项目中使用它。 它在模拟器下工作。 但是当在仅强制执行A​​OT编译的设备上运行时,我收到此错误:

attempting to JIT compile method 'ProtoBuf.BufferPool.GetBuffer()' while running with --aot-only 

调用Serialize()时发生exception:

 using (var stream = File.Create(out_file)) { serializer.Serialize(stream, settings); } 

谢谢你的帮助。

我抓住了protobuf-net来源(v2 r470)。 使用[ImmutableObject]确实是问题之一。 我通过protobuf-net问题列表向@MarcGravell提交了一些小补丁。 我已经使用这个新程序集在http://github.com/t9mike/ProtoBuf1上更新了我的示例。 谢谢大家的回复。

在使用Unity(使用protobuf-net和iOS)时,我遇到了类似的问题,这对我有所帮助:

 Environment.SetEnvironmentVariable("MONO_REFLECTION_SERIALIZER", "yes"); 

图片来源: https : //github.com/antonholmquist/easy-serializer-unity

Interesting Posts