Light0457
Light0457
> I had not compare the .skel file parsing time between 3.8 and 4.0, but I had tried to changed the string propertyIds back into integer, it reduce the parse...
遇到一样的问题。il2cpp下,将delegate加到CustomBridge中也不起作用。一般的delegate加进去可以正常,一但做为event来使用,就会报System.Threading.Interlocked::CompareExchange这个的no AOT generated的错误。即使我在打基础包时,强行加了代码System.Threading.Interlocked.CompareExchange,补丁运行到这个event的时候还是会报错。有什么办法能修复吗 @chexiongsheng
> > CompareExchange > > android版本的async多了个泛型调用,你用Patch,而不是Patch(Android)试试 我这边没有用到ascyn。也蛮试了一下用Patch,在Android(il2cpp)下仍然是会报这个错误: > 01-12 09:42:04.718 E/Unity (14434): Exception: Attempting to call method 'System.Threading.Interlocked::CompareExchange' for which no ahead of time (AOT) code was generated. 01-12 09:42:04.718...
> > CompareExchange > > 跟CustomBridge没关系,怎么配都没用。报错表示指令里有个对一个需要AOT的泛型方法调用。 我反编译出来看过, ``` [Preserve] public static event Invoke_Param0Int onInvoke_Param0Int; [Preserve] public static event Action onInvoke_Param0String; ``` 是两个event事件生成出来的add函数和remove函数,它们的指令里会有报错的那个方法(CompareExchange)。 ``` IL_001c: call !!0 [mscorlib]System.Threading.Interlocked::CompareExchange(!!0&, !!0, !!0) IL_001c:...
> 据说你别Patch(Android),直接用patch就没这指令。 我试过的,直接用Patch,运行起来也是会碰到这个指令而报错。跟用Patch(Android)一样的报错。 我这边,这个指令在Editor下的Assembly-CSharp.dll里面就是会存在。不知道是不是跟什么环境配置有关系