当我处理来自我的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中它运行良好。
感谢。
答案 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