在安卓应用中尝试使用LUAJ,但找不到Lua类。

我怀疑我的无知不仅仅是关于LUAJ的问题,所以请轻一点。

目标:在我的应用程序中定期执行lua脚本,在Lua和Java之间来回传递数据,并提供一定量的安全性(例如不允许Lua删除文件)。

我的应用程序的大部分内容都是纯Android / Java,并且运行得很好。在这种情况下,我不是很愚蠢。

从各种示例中出发,我终于将LUAJ Jar文件作为外部Jar引入了Eclipse。之后,这些导入就可以工作了

import org.luaj.vm2.Lua;
import org.luaj.vm2.LuaClosure;
import org.luaj.vm2.LuaTable;
import org.luaj.vm2.LuaValue;
import org.luaj.vm2.Prototype;
import org.luaj.vm2.compiler.LuaC;
import org.luaj.vm2.lib.jse.CoerceJavaToLua;
import org.luaj.vm2.lib.jse.JsePlatform;

大多数代码主要是编译,但是我仍然没有“Lua”接口可以在这里使用:

public class MyLuaEngine  implements Lua

该行会失败并报告“无法实现,因为Lua不是超类”。我非常确定它不知道Lua是什么(除非它在某个其他命名空间中找到一个同源词)。

此外,我的Lua:add()等覆盖也会出现问题(它们没有超类可以覆盖)例如:

@Override
public void run(int id, EventArgs args) throws LuaException
{
    LuaClosure script = scripts.get(id);

(必须覆盖一个超类型)

我假设我需要添加一个外部Jar来导入Lua本身到Eclipse中?,但我没有找到任何相关指令(此外,如果LUAJ是Lua的完整Java实现,则我期望此接口类也是LUAJ jar的一部分。

在我发现的三个LUAJ jar中,我只告诉了Eclipse一个(JSE,而不是JME或Source)。

点赞