focus-creative-games / hybridclr

HybridCLR是一个特性完整、零成本、高性能、低内存的Unity全平台原生c#热更新解决方案。 HybridCLR is a fully featured, zero-cost, high-performance, low-memory solution for Unity's all-platform native c# hotupdate.
https://code-philosophy.com/
MIT License
6.61k stars 672 forks source link

打包报错error: expected expression: IL2CPP_POP_ACTIVE_EXCEPTION(); #115

Closed H2ojunjun closed 1 year ago

H2ojunjun commented 1 year ago

QQ图片20231127183539 打包时报上述错误,经排查发现在HybirdCLR的ilbil2cpp中有如下定义: QQ图片20231127183426 检查发现打包出来的il2cpp翻译后的代码中调用的宏是:IL2CPP_POP_ACTIVE_EXCEPTION();但是IL2CPP_POP_ACTIVE_EXCEPTION只有一个带参数的版本。此时就会打包报错。 但有时打包出来的il2cpp代码中又是正常的IL2CPP_POP_ACTIVE_EXCEPTION(Exception_t*); 所以会偶尔打包失败,此时需要重新install hybirdCLR可以解决问题,但有没有什么更方便的解决方案以及原理是什么,望解答!

H2ojunjun commented 1 year ago

Unity版本: 2022.3.13f1c1 HybirdCLR版本:4.0.12

pirunxi commented 1 year ago

2021.3.31及2022.3.10版本 这个宏定义发生变化,导出会出现编译错误,我们在v4.0.9版本起合并了这个改动。升级最新hybridclr版本即可。