LuaScriptCore一个可以让你在你的Android工程中使用lua脚本的方式
集成
项目原地址 https://github.com/vimfung/LuaScriptCore
目前已经有2.0版本和1.X版本的,酌情选择
通过Gradle
Gradle中加入集成
compile 'com.github.vimfung.luascriptcore:luascriptcore:1.3.1'
最后面的版本号可以更改,具体版本号可参见
https://github.com/vimfung/LuaScriptCore/wiki/%E6%9B%B4%E6%96%B0%E5%8E%86%E5%8F%B2
手动
查看wiki,个人配置了没有问题。
配置后,项目工程图。
使用流程
//注册上下文对象
LuaContext context = LuaContext.create(this);
//直接进行简单的lua交互式语言
context.evalScript("print('Hello World');");
//直接执行lua文件
context.evalScriptFromFile("JustDoIt.lua");
而我主要是为了实现在lua中使用java语言创建的对象,我在2.0版本没有实现,不知道是不是使用姿势不对,于是采用1.3.5版本的。
首先自己对象类要继承LuaObjectClass
然后在lua中使用。
首先需要对其进行构建。
local bili = Parame.create();
//取得对象中的变量
bili:x();
//调用内部的方法
bili:haha();
当然你也可以直接用从java方向返回回来的数据,然后lua端接收。
然后慎用lua中对象的create,因为他会占用jni层的引用表,而jni的引用表最大占用是512,不能修改,lua中创建的对象不能动态销毁,导致jni层报错。