Я пытаюсь вызвать простую функцию Lua из Java с помощью LuaJava. calc.lua:Ошибка 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); L.insert (-2);
Не знаете, почему это вообще даёт ошибку или что такое ошибка. Может быть, я неправильно настраиваю обработчик ошибок? Так что это не вызов? После загрузки я попытался с консоли и смог запустить print (foo (5)), возвращая 10, как ожидалось.
UPDATE: Похоже, мне нужно предоставить обработчик ошибок в стеке. Что такое подпись для такого обработчика ошибок и как я могу поместить его в точку в стеке. Спасибо
ОК. Я получаю сообщение об ошибке сейчас. – Androider
Это еще один вопрос, но теперь ошибка, которую я получаю, пытается сделать арифметику на локальной переменной n. – Androider
Ссылка на вопрос о полученном коде ошибки http://stackoverflow.com/questions/8622409/lua-error-attempt-to-perform-arithmetic-on-local-variable – Androider