UnityAndroidIl2cppPatchDemo icon indicating copy to clipboard operation
UnityAndroidIl2cppPatchDemo copied to clipboard

为什么只更新so和global-metadata.dat会启动时崩溃?

Open 1987skywalker opened this issue 4 years ago • 1 comments

这两部分,libil2cpp和assets目录,必须匹配(即需要在同一次打包中提取,可能有的变了,有的没变,增量方式只提取变化的部分)才能正常工作,不然Unity会在启动时崩溃。

请问为什么和assets不匹配会崩溃?另一种改MetadataLoader.cpp的so热更方案好像没这问题

1987skywalker avatar Sep 22 '20 07:09 1987skywalker

才看到,说说我知道的。 即使所有资源都打了bundle,assets里面还是保存一些全局的数据定义。 按漏出来的老代码, 里面包含了打包时所有序列化脚本的定义,Unity启动的时候会去初始化。 我试过,如果没动到序列化脚本的定义,小改代码,其实是跑得起来的。 但是,这个说法是没有经过严格测试的。哪天不匹配崩了,其实我也答不上来,我没代码, 我不知道。

至于改MetadataLoader.cpp的so热更方案,我不知道, 不做评价。

noodle1983 avatar Nov 07 '20 12:11 noodle1983