xLua
xLua copied to clipboard
v2.1.15版本 在Android真机上运行一直报LuaException: xlua.access, no field __Hotfix0_Update
Unity 版本:2019.2.3f1,XLua版本:7月24号下载的master主干的XLua包 1.在Unity编辑器上运行完全没问题,但是把它build成一个apk安装进手机后,就一直报LuaException: xlua.access, no field __Hotfix0_Update。
说明:1.我试过在Unity中先执行了两步注入,再build出apk,
2.我也配置了HOTFIX_ENABLE
3.我也从Unity2019.2.3f1中拷贝了Unity.Cecil.dll、Unity.Cecil.Mdb.dll、Unity.Cecil.Pdb.dll到XLua/Src/Editor中
依然还是LuaException: xlua.access, no field __Hotfix0_Update。
备注:同样的做法,我用在Unity2017.2.0版本上build出来的apk,可以成功运行,没问题。
请问我现在是什么问题?是不是哪里配置不对。帮忙指导下,谢谢。

新版本已经不少人试过2019是可以的。 你这种情况是android没注入,可能某个步骤有误。
新版本已经不少人试过2019是可以的。 你这种情况是android没注入,可能某个步骤有误。
感谢作者回答,我已经在android模式下设置了HOTFIX_ENABLE,然后再执行那两步注入,提示了inject finish!,才去build apk出来,还是出现这个问题。我再研究研究看看
新版本已经不少人试过2019是可以的。 你这种情况是android没注入,可能某个步骤有误。
感谢作者回答,我已经在android模式下设置了HOTFIX_ENABLE,然后再执行那两步注入,提示了inject finish!,才去build apk出来,还是出现这个问题。我再研究研究看看
手机版本是在build的时候自动执行注入的,不用手动。可能是自动注入的时候报错,你看看打包的日志。
2019.4.5f1 遇到同样的问题
2019.4.6 也遇到这个问题 打Android包完成的时候提示:D:\Git\xLua\Temp\StagingArea\Data\Managed\Assembly-CSharp.dll inject finish! 实际运行的时候:XLua xlua.access, no field __Hotfix0_Update
2019.4.6 也遇到这个问题 打Android包完成的时候提示:D:\Git\xLua\Temp\StagingArea\Data\Managed\Assembly-CSharp.dll inject finish! 实际运行的时候:XLua xlua.access, no field __Hotfix0_Update
不要用[Hotfix]标签的形式,用static方法的形式是没有问题的
2019.4.6 也遇到这个问题 打Android包完成的时候提示:D:\Git\xLua\Temp\StagingArea\Data\Managed\Assembly-CSharp.dll inject finish! 实际运行的时候:XLua xlua.access, no field __Hotfix0_Update
不要用[Hotfix]标签的形式,用static方法的形式是没有问题的
谢谢,按这个方法成功了
2019.4.6 也遇到这个问题 打Android包完成的时候提示:D:\Git\xLua\Temp\StagingArea\Data\Managed\Assembly-CSharp.dll inject finish! 实际运行的时候:XLua xlua.access, no field __Hotfix0_Update
不要用[Hotfix]标签的形式,用static方法的形式是没有问题的
请问 你的意思是在加[Hotfix]标签的类或者方法的地方不用[Hotfix]标签,直接把该类或者方法变成static方法就行吗?
2019.4.6 也遇到这个问题 打Android包完成的时候提示:D:\Git\xLua\Temp\StagingArea\Data\Managed\Assembly-CSharp.dll inject finish! 实际运行的时候:XLua xlua.access, no field __Hotfix0_Update
不要用[Hotfix]标签的形式,用static方法的形式是没有问题的
请问 你的意思是在加[Hotfix]标签的类或者方法的地方不用[Hotfix]标签,直接把该类或者方法变成static方法就行吗?
看hotfix得文档说明,用方式二
我用的 unity 2019.4.9f1LTS + xlua_v2.1.15 , 使用的第三种白名单的方式给项目里所有命名空间下的类打标记, 经测试木有问题
2019.4.6 也遇到这个问题 打Android包完成的时候提示:D:\Git\xLua\Temp\StagingArea\Data\Managed\Assembly-CSharp.dll inject finish! 实际运行的时候:XLua xlua.access, no field __Hotfix0_Update
不要用[Hotfix]标签的形式,用static方法的形式是没有问题的
请问 你的意思是在加[Hotfix]标签的类或者方法的地方不用[Hotfix]标签,直接把该类或者方法变成static方法就行吗?
看hotfix得文档说明,用方式二
感谢 现在高版本打标签真机没用而且不方便 使用动态或静态打包确实有效
我用的static 静态类,编辑器没有问题,但是一打包就出问题,我在模拟器上运行,宏开启了,网上能找的办法都试过了。。 报错如下:luaOpen是我要Fix的方法 LuaException: xlua.access, no field __Hotfix0_LuaOpen stack traceback: [C]: in field 'access' [string "Init"]:101: in field 'hotfix' bag:2: in main chunk [C]: in function 'require' main:3: in main chunk [C]: in function 'require' [string "chunk"]:1: in main chunk
XLua.LuaEnv.ThrowExceptionFromError (System.Int32 oldTop) (at <00000000000000000000000000000000>:0) XLua.LuaEnv.DoString (System.Byte[] chunk, System.String chunkName, XLua.LuaTable env) (at <00000000000000000000000000000000>:0) XLua.LuaEnv.DoString (System.String chunk, System.String chunkName, XLua.LuaTable env) (at <00000000000000000000000000000000>:0) MonoMain.SucessCheck () (at <00000000000000000000000000000000>:0) UnityEngine.Events.UnityAction.Invoke () (at <00000000000000000000000000000000>:0) ABDownLoad.Update () (at <00000000000000000000000000000000>:0)
我的静态类配置如下(放到Editor下的):
public static class HotfixCfg { [Hotfix] public static List<Type> by_field = new List<Type>() { typeof (MyBagLua), };
[LuaCallCSharp]
public static List<Type> mymodule_lua_call_cs_list = new List<Type>()
{
typeof (MyBagLua),
};
}
我用的 unity 2019.4.9f1LTS + xlua_v2.1.15 , 使用的第三种白名单的方式给项目里所有命名空间下的类打标记, 经测试木有问题
请问不是只有打标签和 static 列表两个方法么,白名单方法如何操作,标签法和静态列表都试过,2019.4.18f1c1+v2.1.15,编辑器没问题,但是打包到模拟器就会报错LuaException: xlua.access, no field __Hotfix0_LuaOpen
我也遇到同样的,已按照下面的操作解决. https://zhuanlan.zhihu.com/p/380745695?utm_source=qq&utm_medium=social&utm_oi=930842726778310656