报错原文:
InvalidOperationException:MyCore.ABPckages.ABConfig cannot be serialized because it does not have a defaut putlic constructor(方法无法被序列化因为没有默认的公共构造器)
其中MyCore是我这边封装的一个dll工具类。在项目没有切换至IL2CPP之前一切都是正常的,这个问题我是摸索了一个上午和一个下午终于搞定。
报错原因:
我起初不知道原因,直到看到了这位大佬的文章,才搞清楚原来如此。
简单来说,就是IL2CPP的一切优化机制,将系统没检测到使用的类在打包的时候都去除掉了,但是如果某些类通过反射来调用,编译器是无法检测到的,并且在编译阶段又将这个类去除了,因此导致了打包后报错。(更详细的解释在上面的链接文章)
解决方法:
1、在项目初始化的脚本,把这些类都new出来,如果是继承Mono的可能需要addComponent。(不推荐,因为这样相当于多出来了几个空对象,而且很麻烦)