У меня возникли проблемы с вызовами сценариев Lua с Java через LuaJ на Android, для которых требуются другие сценарии Lua. Я думаю, что это связано с моим текущим рабочим каталогом.Требование других сценариев lua из сценария Lua с использованием LuaJ на Android
То, что я пытаюсь в Java:
InputStream input = EvilApp.getContext().getAssets().open("lua/pathTest.lua");
Prototype p = LuaC.instance.compile(input, "pathTest.lua");
LuaValue g = JsePlatform.standardGlobals();
LuaClosure c = new LuaClosure(p, g);
c.call();
pathTest.lua:
require "Foo"
local str = Foo.getString()
print(str)
Для этого конкретного теста, оба Lua файлы находятся в том же каталоге, для простоты, но мне нужно будет относительные пути к другим файлам lua.
Я пробовал играть с package.path, но ничто из того, что я пробовал, не сработало. При запуске в Android, package.path == "? .lua" по умолчанию.
Я проверил этот тест с относительными путями через командную строку и внутри Eclipse с помощью Koneki, и они отлично работают. Это, в частности, ситуация в Android, которая терпит неудачу.
Кроме того, я могу получить сценарии Lua без необходимости хорошо работать в Android.