xLua icon indicating copy to clipboard operation
xLua copied to clipboard

v2.1.15版本 在Android真机上运行一直报LuaException: xlua.access, no field __Hotfix0_Update

Open qinzhaojin666 opened this issue 5 years ago • 14 comments

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,可以成功运行,没问题。 请问我现在是什么问题?是不是哪里配置不对。帮忙指导下,谢谢。 1595595552(1)

qinzhaojin666 avatar Jul 24 '20 13:07 qinzhaojin666

新版本已经不少人试过2019是可以的。 你这种情况是android没注入,可能某个步骤有误。

chexiongsheng avatar Jul 30 '20 13:07 chexiongsheng

新版本已经不少人试过2019是可以的。 你这种情况是android没注入,可能某个步骤有误。

感谢作者回答,我已经在android模式下设置了HOTFIX_ENABLE,然后再执行那两步注入,提示了inject finish!,才去build apk出来,还是出现这个问题。我再研究研究看看

qinzhaojin666 avatar Aug 03 '20 02:08 qinzhaojin666

新版本已经不少人试过2019是可以的。 你这种情况是android没注入,可能某个步骤有误。

感谢作者回答,我已经在android模式下设置了HOTFIX_ENABLE,然后再执行那两步注入,提示了inject finish!,才去build apk出来,还是出现这个问题。我再研究研究看看

手机版本是在build的时候自动执行注入的,不用手动。可能是自动注入的时候报错,你看看打包的日志。

chexiongsheng avatar Aug 03 '20 06:08 chexiongsheng

2019.4.5f1 遇到同样的问题

bYsdTd avatar Aug 07 '20 07:08 bYsdTd

2019.4.6 也遇到这个问题 打Android包完成的时候提示:D:\Git\xLua\Temp\StagingArea\Data\Managed\Assembly-CSharp.dll inject finish! 实际运行的时候:XLua xlua.access, no field __Hotfix0_Update

ChaosVan avatar Aug 19 '20 12:08 ChaosVan

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方法的形式是没有问题的

bYsdTd avatar Aug 19 '20 12:08 bYsdTd

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方法的形式是没有问题的

谢谢,按这个方法成功了

ChaosVan avatar Aug 20 '20 07:08 ChaosVan

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方法就行吗?

qinzhaojin666 avatar Aug 31 '20 02:08 qinzhaojin666

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得文档说明,用方式二

bYsdTd avatar Aug 31 '20 02:08 bYsdTd

我用的 unity 2019.4.9f1LTS + xlua_v2.1.15 , 使用的第三种白名单的方式给项目里所有命名空间下的类打标记, 经测试木有问题

heyChenfu avatar Sep 09 '20 03:09 heyChenfu

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得文档说明,用方式二

感谢 现在高版本打标签真机没用而且不方便 使用动态或静态打包确实有效

WangYuHang-97 avatar Dec 30 '20 03:12 WangYuHang-97

我用的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),
};

}

euphoriaer avatar Jan 31 '21 06:01 euphoriaer

我用的 unity 2019.4.9f1LTS + xlua_v2.1.15 , 使用的第三种白名单的方式给项目里所有命名空间下的类打标记, 经测试木有问题

请问不是只有打标签和 static 列表两个方法么,白名单方法如何操作,标签法和静态列表都试过,2019.4.18f1c1+v2.1.15,编辑器没问题,但是打包到模拟器就会报错LuaException: xlua.access, no field __Hotfix0_LuaOpen

euphoriaer avatar Jan 31 '21 06:01 euphoriaer

我也遇到同样的,已按照下面的操作解决. https://zhuanlan.zhihu.com/p/380745695?utm_source=qq&utm_medium=social&utm_oi=930842726778310656

luorui110120 avatar Nov 13 '21 08:11 luorui110120