1.新建一个lua类,写上调用android的方法。
local luaj = require "cocos.cocos2d.luaj" --引入luaj
local luajTest = class("luajTest") -- 构建lua 类
function luajTest:callandroid() --调用android的方法实现--包名/类名 这个可以在对应的android工程的manifest中得到
local className="org/cocos2dx/lua/AppActivity"
local args = { "hello android", callbackLua }
local sigs = "(Ljava/lang/String;I)V" --传入string参数,无返回值
--luaj 调用 Java 方法时,可能会出现各种错误,因此 luaj 提供了一种机制让 Lua 调用代码可以确定 Java 方法是否成功调用。
--luaj.callStaticMethod() 会返回两个值
--当成功时,第一个值为 true,第二个值是 Java 方法的返回值(如果有)
--当失败时,第一个值为 false,第二个值是错误代码
local ok,ret = luaj.callStaticMethod(className,"test",args,sigs)
if not ok then
item:setString(ok.."error:"..ret)
end
end
return luajTest
2.调用android方法
local testluaj = require('src.app.models.luajTest')--引入luajTest类
local testluajobj = testluaj.new(self)
testluajobj.callandroid(self)
3.打开AppActivity.java,在空白处加上uajTest.lua类中定义要调用的方法test
public static void test(final String param,final int luaFunc) {
System.out.println("----传过来的参数----param:"+param);
System.out.println("-------luaFunc:"+luaFunc);
}