4

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

“在使用 --aot-only 运行时尝试 JIT 编译方法 '(wrapper runtime-invoke) :runtime_invoke_bool_Nullable`1 (object,intptr,intptr,intptr)'。请参阅http://docs.xamarin.com/ios/about /限制了解更多信息。\n"

请问,我该如何解决这个问题?我已经检查了服务器端,但似乎还可以。

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

仅在 iOS中发生,在 Android 中可以正常工作。

谢谢。

4

1 回答 1

-2

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

Xamarin 在通过异常提供的链接中很好地解释了它:

没有动态代码生成

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

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

于 2015-12-02T16:45:13.253 回答