LuaJ 存在bug,调用只带一个string参数的java方法不成功

使用Luaj调用只带一个string参数java静态方法不成功,在该方法后加一个无意义的float参数就可以调用到了,不知道这是不是一个luaj的bug

这种情况,要指定 Java 方法的签名。

已经指定了签名了

签名是这样指定的
local javaMethodSig = “(Ljava/lang/String)V”
luaj.callStaticMethod(javaClassName, javaMethodName, javaParams, javaMethodSig)

但是不行
后来加了个没用的参数给调用成功了

参数怎么传递的?

local javaParams = {
“” – 一个string的url地址
}

后来换成的是
local javaParams = {
“”, – 一个string的url地址
1
}

Java 方法是
public static void openUrl(final String url){
… //这个调用不成功
}

public static void openUrl(final String url, final float v){

}

我的不成功的意思是 我在java方法里设置断点都没进 应该是根本没有调用到相关方法

— Begin quote from ____

引用第3楼hioln于2014-07-11 14:25发表的 :
签名是这样指定的
local javaMethodSig = “(Ljava/lang/String)V”
luaj.callStaticMethod(javaClassName, javaMethodName, javaParams, javaMethodSig)

但是不行
http://www.cocoachina.com/bbs/job.php?action=topost&tid=213786&pid=1001184

— End quote

你的签名应该这样指定:local javaMethodSig = "(Ljava/lang/String;)V"字符串类型比较特别,要加分号

1赞

7楼是对的,以L开头的类要以分号作为结尾