[0]js调用android的java代码失败。NoSuchMethodException

错误描述为:
JSRuntime::callMethod {"v":"java.lang.NoSuchMethodException: demo.JSBridge.testString: [class java.lang.String]"} demo.JSBridge testString:
 
在js那边的代码
为:
_doTestCallJava(){
let os = null
let bridge = null

if(typeof conchConfig != "undefined"){
os = conchConfig.getOS()
}

if (os == "Conch-ios") {
bridge = PlatformClass.createClass("JSBridge")//创建脚步代理
}
else if (os == "Conch-android") {
//需要完整的类路径,注意与iOS的不同
bridge = PlatformClass.createClass("demo.JSBridge")//创建脚步代理
}

console.log("test step ~~~~~~~~~~~~~~~~~~~~~~1")

if(os == "Conch-ios"){

}else if (os == "Conch-android") {
console.log("test step ~~~~~~~~~~~~~~~~~~~~~~2")

if(bridge){
console.log("test step ~~~~~~~~~~~~~~~~~~~~~~3")

bridge.call("testString:", "this is a str ~")
}
}
}

然后在安卓那边的JSBridge里添加代码:

public static String testString(String value) {
Log.d("0", "I got str " + value);
return "LayaBox";
}
调用的时候,就报错说找不到。
 
2021-11-11 16:01:52.497 29147-29235/com.javacall.test I/LayaBox:  test step ~~~~~~~~~~~~~~~~~~~~~~1
2021-11-11 16:01:52.497 29147-29235/com.javacall.test I/LayaBox: test step ~~~~~~~~~~~~~~~~~~~~~~2
2021-11-11 16:01:52.497 29147-29235/com.javacall.test I/LayaBox: test step ~~~~~~~~~~~~~~~~~~~~~~3
2021-11-11 16:01:52.497 29147-29235/com.javacall.test I/LayaBox: JSRuntime::callMethod {"v":"java.lang.NoSuchMethodException: demo.JSBridge.testString: [class java.lang.String]"} demo.JSBridge testString:

 
android studio项目,太大了,传附件你们不支持,所以我把项目分成几块传了。
记得把后面3个文件解压之后,放到android_studio项目的android_studio\app\libs,这个路径下面。
 
 
 
已邀请:

阿闲

赞同来自: Yan

bridge.call("testString:", "this is a str ~")
安卓调用的时候没有冒号呢,我真是个。。。。。
去掉冒号就好了。

devx

赞同来自:

bridge.call("testString:", "this is a str ~") 
testString: 后面带个冒号 (:)  是iOS 的签名嘛。
你安卓的不要带冒号 直接  
	bridge.call("testString", "this is a str ~")

要回复问题请先

商务合作
商务合作