问题描述
之前有一个项目使用的luaj版本为3.0.2,我们写的lua脚本如果其中需要调用Java写好的工具类,之前的方式是通过自定义的lualoader(也就是globals = JsePlatform.standardGlobals())来xxxToLua(在globals里设置键值对)将Java类或对象添加到lua中,但这种方式无疑会依赖于一个Java基类,如果不同的lua脚本他需要依赖不同的Java类的话,我们就不得不每次添加lua脚本后都要去修改一下Java基类来添加自己需要的Java工具类,那么有没有一种方式我们可以只靠lua文件自己就创建需要的Java类。
常用方法:
luaj给我们提供了几个方法luajava.bindClass()或者luajava.newInstance()或者luajava.bindClass()之后new(),具体方法就不介绍了,可以自己去查询。
排坑经历
这些方法在我的项目中都会提示Didn‘t find class “需要导入的模块“ on path: DexPathList[[directory “.”],nativeLibraryDirectories=[/system/lib64, /system_ext/lib64, /system/lib64, /system_ext/lib64]]
在尝试多种方法后,我在这篇文章找到了解决方案:
java - LuaJ and Android: cannot bind class - Stack Overflow
文章作者指出高版