3

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

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

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

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

调用 Serialize() 时发生异常:

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

谢谢你的帮助。

4

2 回答 2

2

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

于 2011-11-08T01:57:57.317 回答
0

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

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

信用:https ://github.com/antonholmquist/easy-serializer-unity

于 2015-03-28T20:56:58.153 回答