我知道可以运用luj进行调用,出现了看了我是妖怪和quik里面关于luj的文章,自己就在我的项目中加入了luj,结果出现了 LUA ERROR:
attempt to index field ‘LuaJavaBridge’ (a nil value)
下面是quike 里面的,我自己有稍微修改了一点,请大神帮我看一下
local luaj = {}
local callJavaStaticMethod = cc.LuaJavaBridge.callStaticMethod
local function checkArguments(args,sig)
if type(args)~= “table” then args = {} end
if sig then return args,sig end
sig = {"("}
for i,v in ipairs(args) do
local t = type (v)
if t == "number" then
sig#sig+1] = "F"
elseif t=="boolean" then
sig#sig+1] = "Z"
elseif t=="function" then
sig#sig+1] = "I"
else
sig#sig+1] = "Ljava/lang/String;"
end
end
sig#sig+1] = ")V"
return args,table.concat(sig)
end
function callStaticMethod(callName,methodName,args,sig)
local args,sig = checkArguments(args,sig)
–printInfo(“luaj.callStaticMethod(”%s",\n\t"%s",\n\t"%s"",className,methodName,sig)"))
return callJavaStaticMethod(className,methodName,args,sig)
end
下面是我写在我游戏程序里面的
–获取社交工具平台用户userID
local className = “com/项目名/application/类名.java” – 关于公司的这个就保密了哈
local args = {“0”} --userID
local sig = “(Ljava/lang/String;I)V”
local dataTable = {}
dataTable"gameId"] = 0
dataTable"score"] = 100
dataTable"userId"] = callStaticMethod(className,"getUserId",args,sig) -- 获取用户ID
--发送积分
postScore(dataTable)