在设备上以发布模式运行应用时出现错误: ExecutionEngineException - 在仅以aot模式运行时尝试JIT编译方法'AudioJack.ACRAudioJackReader:.ctor(bool)'。有关详细信息,请参阅https://developer.xamarin.com/guides/ios/advanced_topics/limitations/。
它出现在Xamarin iOS的最新更新之后。 在调试模式下在设备上正常工作。 还尝试禁用编译器优化 - 没有帮助。
我正在使用iOS绑定到AudioJack库,构造函数导致错误。
[BaseType(typeof(NSObject))]
interface ACRAudioJackReader
{
[ExportAttribute("initWithMute:")]
IntPtr Constructor(bool isMute);
}
检查了与此问题相关的所有文章,但尚未找到解决方案。
有人知道如何修复它吗?
谢谢
答案 0 :(得分:1)
<强> TL; DR 强>
您需要在有问题的绑定项目中启用启用优化选项。
我和你的问题类似。
我在Mac上工作并从 Xamarin Studio 切换到最新的 Visual Studio for Mac 。更新应用程序停止在iOS设备上工作,但有趣的是,模拟器很好。
当我想从这个有问题的库初始化对象时,在运行时发生错误。我的应用程序有很少的iOS绑定项目,但只有一个导致了这样的问题。我不想在其他项目中引入任何不必要的更改。
最后我发现在我的情况下,为包含这个有问题的库的绑定项目打开启用优化就足够了。应用程序的项目(这是唯一使用此库的项目)尚未更改。
因为我知道我的应用程序在更新之前正在运行,所以我认为这是一个 Xamarin 问题,因此我只关注寻找解决方案,而不是理由。
您可以在以下网址找到此选项:
项目选项&gt; 构建&gt; 编译器&gt; 启用优化
答案 1 :(得分:0)
看起来这已经作为一个bug提交,并且应该在下周发布的版本中修复。