由于lua脚本更新等原因。需要把xlua的evn给释放掉,然后再重新创建并加载lua代码。所以会有在一次运行周期内多次创建并释放evn的需求。然后问题就出现了,在第二次以上释放的时候会报:
System.InvalidOperationException: try to dispose a LuaEnv with C# callback!
at XLua.LuaEnv.Dispose (Boolean dispose) [0x0002d] in D:\work\client\Assets\ThirdParty\XLua\Src\LuaEnv.cs:412
at XLua.LuaEnv.Dispose () [0x00013] in D:\work\client\Assets\ThirdParty\XLua\Src\LuaEnv.cs:395再三确认,在调用LuaEnv.Dispose之前的确已经把所有会被lua注册的代理清理干净了。而且第一次dipose并不会报错。
解决