使用--aot-only

时间:2015-12-02 15:32:17

标签: xamarin compilation jit xamarin-forms

当我处理来自我的Xamarin.Forms应用程序的WCF请求时,我收到此异常:

“尝试使用JIT编译方法”(包装器运行时调用):runtime_invoke_bool_Nullable`1(object,intptr,intptr,intptr)'在运行时使用--aot-only。 有关详细信息,请参阅http://docs.xamarin.com/ios/about/limitations。\ n“

拜托,我怎么能解决这个问题?我检查了服务器端,但似乎没问题。

其余的WCF请求工作正常,这只发生在设备中(不在模拟器中)。

仅在iOS 中发生,在Android中它运行良好。

感谢。

1 个答案:

答案 0 :(得分:-2)

iOS不允许动态代码生成/ JIT,所有内容都必须经过AOT编译...对所有应用程序的Apple安全限制,在他们自己的Nitro JavaScript引擎中进行JIT操作是该规则的一个例外。

Xamarin在通过例外提供的链接中解释得非常好:

  

无动态代码生成

     

由于iPhone的内核阻止了   在iPhone上动态生成代码的应用程序   不支持任何形式的动态代码生成。其中包括:

     

System.Reflection.Emit不可用。

     

不支持System.Runtime.Remoting。

     

不支持动态创建类型(不   Type.GetType(“MyType`1”)),虽然查找现有类型   (例如,Type.GetType(“System.String”)可以正常工作)。

     

必须在编译时向运行时注册反向回调。

参考:http://developer.xamarin.com/guides/ios/advanced_topics/limitations/#No_Dynamic_Code_Generation