Я пытаюсь вызвать простую функцию Lua из Java, используя LuaJava. расч.луа:
function foo(n) return n*2 end
Это все, что есть в calc.lua, и последующие вызовы из командной строки работают.
Вот вызов, который всегда имеет ошибку:
L.getGlobal("foo");
L.pushNumber(8.0);
int retCode=L.pcall(1, 1,-2); // retCode value is always 5 pcall(numArgs,numRet,errHandler)
String s = L.toString(-1); // s= "Error in Error Handling Code"
Я также пробовал
L.remove(-2); Л. вставить (-2);
Не уверен, почему он вообще дает какую-либо ошибку или что это за ошибка. Может я не правильно настраиваю обработчик ошибок? Так он не звонит? После загрузки я попробовал с консоли и могу запустить print(foo(5)), вернув 10, как и ожидалось.
ОБНОВЛЕНИЕ: похоже, мне нужно предоставить обработчик ошибок в стеке. Какова подпись для такого обработчика ошибок и как мне разместить его в точке стека. Спасибо