他の Lua スクリプトを必要とする Android 上の LuaJ を介して Java から Lua スクリプトを呼び出すのに問題があります。現在の作業ディレクトリと関係があると思います。
私が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" になります。
コマンドライン経由で相対パスを使用してこのテストを実行し、Koneki を使用して Eclipse 内で実行しましたが、正常に動作しました。特に失敗しているのは Android 環境です。
また、Android で正常に動作する必要のない Lua スクリプトを取得できます。