Cocos2d-js调用java返回错误码-4是什么错误

我在做Cocos2d-js的Android项目时,需要在js中调用java原生代码,按网上教程用jsb.reflection.callStaticMethod方法通过java类Cocos2dxJavascriptJavaBridge来调用原生代码中类的静态方法(调用Google Play的购买模块):
jsb.reflection.callStaticMethod(“com/aspectgaming/gopoker/shop/Shop”, “makePurchase”, “(Ljava/lang/String;)V”, “android.test.purchased”);
结果返回错误,错误号时 -4
JS: /data/data/org.cocos2dx.GoPoke/files/debugruntime/src/lobby/shop/OpenIABShop.js:22:Error: js_cocos2dx_JSJavaBridge : call result code: -4

请教各路大神,错误号-4是什么错误?网上搜索了一下,只知道-1是js调用Object-c的时候数据类型和官方类型不匹配,但没有人说到-4

大谢了!!

问题解决了,和大家分享:

原来是Cocos2dxJavascriptJavaBridge类没有放在正确的地方,所以runtime编译时根本没有把这个类打包进去。返回-4应该是没有找到类或者没有找到方法吧。

应该把Cocos2dxJavascriptJavaBridge.java文件放在\frameworks\js-bindings\cocos2d-x\cocos\platform\android\java\src\org\cocos2dx\lib,而引擎本身很奇怪地把这个文件放在frameworks\js-bindings\bindings\manual\platform\android\java\src\org\cocos2dx\lib目录。

有点坑爹对吧?我的版本是cocos2d-x 3.2RC0

使用cocos命令行运行的时候会自动复制过去的。楼主是用什么方式运行的?

确实如此 在原始的文件夹里就没有 怎么可能会复制过去。。。。 只有LUA版本的 JS的是没有的。

更新下:出现-4 不是缺少这个文件 是java写错了 cocos ide里面不报java的错误 你得去eclispse里去查看