java和lua交互方法(1)

java和lua之间进行交互,可是用一种基于jni的luajavaBridge方法,目前已经集成在quick-cocos引擎中了。
luaj的功能整理:
1.lua能够查找java的方法;
2.lua能够把函数作为参数传入到java;
3.lua能够从java获得查找调用方法的返回值;
4.java能够调用lua的函数;
下面是一个调用范例,根据java方法需要的传参,来确定lua这边的签名。

   //java方法原型:
public static void GameInterface_doBilling(final String billingIndex,
    final float useSms,
    final boolean isRepeated,
    final int luaFunctionId);
//lua调用java的参数:
local args = {
  "001",
  1.2,
  true,
  //若是把lua的函数传给java,java接收方法的参数为int类型,因为传过来到java之后,保存的是int类型的引用id,
  //通过它可以去找到lua的函数。调用方式:LuaJavaBridge.callLuaFunctionWithString(luaFunctionId, "hello");
  callbackFunc
  }
  //Java类名称
  local className = "com/qeeplay/frameworks/China_SDK"
  //签名
local sig = "(Ljava/lang/String;FZI)V"
//调用java方法
//ok, ret作为接收java的返回信息,ok若为true,ret即返回值,ok若是false,ret为报错信息。
local ok, ret = luaj.callStaticMethod(className,"GameInterface_doBilling",args,sig);

这篇文章参考自https://www.cnblogs.com/mokey/p/4443561.html

你可能感兴趣的:(java和lua交互方法(1))