2014-06-24 49 views
0
public class StaticDataContainer<T> where T : IStaticData { 
protected static Dictionary<int, T> data; 


public static void init(string jsonString){ 
    //It work fine in Unity,But in Xcode iOS,it will show an error below: 
    //ExecutionEngineException: Attempting to JIT compile method 
    //'System.Collections.Generic.Dictionary`2<int, AD>:.ctor()' 
    //while running with --aot-only. 
    data = new Dictionary<int, T>(); 

我指的是:http://answers.unity3d.com/questions/250803/executionengineexception-attempting-to-jit-compile.htmlExecutionEngineException:试图JIT编译方法

您的应用程序利用了这是AOT过程中丢失的编译一些通用型的。 解决方案是:通常可以通过包含引用缺少类型的“虚拟”类来修复问题。

但我不知道虚拟类是什么。 我该如何解决它?

回答

0

下面是我如何做到这一点。我在一个项目中创建一个名为AOTDummy.cs的文件,其结构如下(适用于您的问题):

public static class AOTDummy 
{ 
    public static void Dummy() 
    { 
     System.Collections.Generic.Dictionary<int, AD> dummy01; 
    } 
} 
+0

这个解决方案是否奏效? –

+0

是否奏效?我有一个类似的问题... –

+0

这不是一颗银色子弹,并不适用于一切。自从我上次发生这个错误以来,一直以来都是这样(主要是因为我现在做的是更简单和更小的项目)。但有些情况下我不得不重写我的代码。我建议你为你的确切情况创建一个新的SO问题(如果你还没有这样做)。 –