ToLua(LuaFramework_UGUI_V2)在Android11(TragetSDK=30)报错问题

本文详述了在Google更新要求TargetSDK大于30后,遇到的luajit在Android 11设备上的badlightuserdata错误,涉及修改luajit源码并解决编译libtolua.so问题,适用于LuaFramework_UGUI_V2开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前几天发布了一个Google更新包,谷歌要求TragetSDK必须不小30,发布更新包后,许多用户反馈,进不去游戏。我们采用的LuaFramework_UGUI_V2进行开发的,在部分Android11机子上luajit会报错bad light userdata pointer。这就需要重新编译libtolua.so。

需要的工具:

1.luajit

2.tolua_runtime_v2

3.编译教程

这里我主要讲一讲报错的问题。

1.第一个报错,执行sh build_arm(64).sh

解决方法:

对比luajit/src/lauxlib.h末尾添加如下代码:

#define lua_unref(L,ref)        luaL_unref(L, LUA_REGISTRYINDEX, (ref))

#define lua_getref(L,ref)       lua_rawgeti(L, LUA_REGISTRYINDEX, (ref))

 2.执行sh build_arm(64).sh编译成功,没有libtolua.so生成

解决方法:手动创建目录

1.Plugins/Android/libs/arm64-v8a

2.Plugins/Android/libs/armeabi-v7a

3.Plugins/Android/libs/x86

 

 

 

自动生成绑定代码文件,非反射调用 大量内建基础类型支持,如枚举,委托,事件,Type, 数组,迭代器等 支持多种协同形式 支持所有unity内部类导出,支持委托类型导出 支持导出自定义,跳过某个空的基类,修改导出名称等 支持扩展函数自定义导出, 比如DoTween 支持值类型Nullable导出,包括Nullable等 支持Lua中function转委托,可以区分需要不同委托的参数的重载函数 支持c# LuaFunction对象转委托,简化调用方式。 支持无GC的多参数调用形式 支持重载函数自动折叠, 如:Convert.ToUInt32只导出double参数的函数 支持重载函数自动排序, 如:参数个数相同, object参数执行级最低, 不会出现错误匹配情况 支持导出函数重命名, 可以分离导出某个重载函数(可以导出被折叠掉的函数) 支持使用编辑器类改写导出规则 支持this数组访问,索引为int可以通过[]访问,其他可使用.get_Item或者.this:get()访问数组成员 支持委托(事件)+-lua function。支持通过函数接口的Add和Remove委托操作 支持静态反射操作, 形式同c# 支持peer表,可在lua端扩展导出的userdata 支持自定义struct压入和读取,做到无GC,并且结构成员无类型限制, 参考例子24 支持preloading, 可以通过requie后绑定wrap文件 支持int64, uint64 大量的lua数学类型,如Quaternion, Vector3, Mathf等 包含第三方lua扩展,包括luasocket, struct, lpeg, utf8, pb等库 当lua出现异常,能够同时捕获c#端和lua端堆栈,便于调试 print信息,在编辑器点击日志, 能自动打开对应lua文件 支持unity所有版本 支持Lua hook C#相代码实现,一定程度上支持利用Lua代码修改C#端代码的bug(暖更新使用说明)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值