ios - (Xamarin iOS) : ExecutionEngineException - Attempting to JIT compile method while running in aot-only mode

标签 ios xamarin.ios xamarin.forms

在设备上以 Release模式运行应用程序时出现错误: ExecutionEngineException - 在仅 aot 模式下运行时尝试 JIT 编译方法“AudioJack.ACRAudioJackReader:.ctor (bool)”。参见 https://developer.xamarin.com/guides/ios/advanced_topics/limitations/获取更多信息。

它出现在 Xamarin iOS 的最新更新之后。 在 Debug模式下在设备上工作正常。 还尝试禁用编译器优化 - 没有帮助。

我正在使用 iOS 绑定(bind)到 AudioJack 库,但构造函数导致了错误。

[BaseType(typeof(NSObject))]
interface ACRAudioJackReader
{

    [ExportAttribute("initWithMute:")]
    IntPtr Constructor(bool isMute);
}

查看了所有与此问题相关的文章,但尚未找到解决方案。

有人知道如何修复它吗?

谢谢

最佳答案

长话短说

您需要在有问题的绑定(bind)项目中打开启用优化选项。


我遇到了与您类似的问题。

我在 Mac 上工作,从 Xamarin Studio 切换到最新的 Visual Studio for Mac。更新后应用程序在 iOS 设备上停止工作,但有趣的是,模拟器没问题。

错误发生在运行时,当时我想从这个有问题的库中初始化对象。我的应用程序有几个 iOS 绑定(bind)项目,但只有一个导致此类问题。我不想在其他项目中引入任何不必要的更改。

最后我发现,在我的情况下,为包含这个有问题的库的绑定(bind)项目打开启用优化 就足够了。应用程序的项目(这是唯一使用此库的项目)未更改。

因为我知道我的应用程序在更新之前可以正常工作,所以我认为这是一个 Xamarin 问题,所以我只专注于寻找解决方案,而不是寻找原因。


您可以在以下位置找到此选项:

项目选项> 构建> 编译器> 启用优化

Screenshot for Enable optimizations in Visual Studio for Mac

关于ios - (Xamarin iOS) : ExecutionEngineException - Attempting to JIT compile method while running in aot-only mode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44331069/

相关文章:

ios - 如何在 NSMutableArray 中添加不同的不同键值?

c# - 如何在适用于 Android 和 iOS 的 Xamarin 跨平台应用程序中的应用程序图标上显示角标(Badge)计数

ios - 用 xamarin 中的全新重写替换 obj-c 应用程序

ios - Monotouch uialertview 大小问题

ios - 无法从 Xamarin.iOS 中的 pkPassLibrary.CanAddPaymentPass 获取正确的值

Xamarin.Forms DependencyService 不适用于所有平台

android - 在条目 View 中书写文本时加下划线 - xamarin,forms android

ios - 如何将 UIImage 异步加载到 SwiftUI Image 中?

ios - webView shouldStartLoadWithRequest 在一个程序中工作,但不能让它在另一个程序中工作

ios - Google Maps SDK iOS - 防止 map 在缩放时更改位置