【问题标题】:(Xamarin iOS): ExecutionEngineException - Attempting to JIT compile method while running in aot-only mode(Xamarin iOS):ExecutionEngineException - 在仅 aot 模式下运行时尝试 JIT 编译方法
【发布时间】:2017-06-02 14:13:38
【问题描述】:

在设备上以发布模式运行应用程序时出现错误: 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);
}

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

有人知道如何修复它吗?

谢谢

【问题讨论】:

    标签: ios xamarin.ios xamarin.forms


    【解决方案1】:

    TL;DR

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


    我遇到了和你类似的问题。

    我在 Mac 上工作并从 Xamarin Studio 切换到最新的 Visual Studio for Mac。更新后应用停止在 iOS 设备上运行,但有趣的是,模拟器很好。

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

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

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


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

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

    【讨论】:

      【解决方案2】:

      看起来这已作为错误提交,应该会在下周的版本中修复。

      https://bugzilla.xamarin.com/show_bug.cgi?id=56962

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-13
        • 1970-01-01
        • 1970-01-01
        • 2015-03-23
        • 1970-01-01
        相关资源
        最近更新 更多