ios真机出现jsb错误

在mac模拟器上和ios真机上.当触摸屏幕就出现下面错误…Web正常…@jare @nantas @panda
该如何解决!!

jsb: ERROR: File /Users/nantas/fireball-x/cxp/cocos/scripting/js-bindings/auto/jsb_cocos2dx_audioengine_auto.cpp: Line: 518, Function: js_cocos2dx_audioengine_AudioEngine_play2d
js_cocos2dx_audioengine_AudioEngine_play2d : Error processing arguments
jsb: ERROR: File /Users/nantas/fireball-x/cxp/cocos/scripting/js-bindings/auto/jsb_cocos2dx_audioengine_auto.cpp: Line: 518, Function: js_cocos2dx_audioengine_AudioEngine_play2d
js_cocos2dx_audioengine_AudioEngine_play2d : Error processing arguments
jsb: ERROR: File /Users/nantas/fireball-x/cxp/cocos/scripting/js-bindings/auto/jsb_cocos2dx_audioengine_auto.cpp: Line: 518, Function: js_cocos2dx_audioengine_AudioEngine_play2d
js_cocos2dx_audioengine_AudioEngine_play2d : Error processing arguments
jsb: ERROR: File /Users/nantas/fireball-x/cxp/cocos/scripting/js-bindings/auto/jsb_cocos2dx_audioengine_auto.cpp: Line: 518, Function: js_cocos2dx_audioengine_AudioEngine_play2d
js_cocos2dx_audioengine_AudioEngine_play2d : Error processing arguments
jsb: ERROR: File /Users/nantas/fireball-x/cxp/cocos/scripting/js-bindings/auto/jsb_cocos2dx_audioengine_auto.cpp: Line: 518, Function: js_cocos2dx_audioengine_AudioEngine_play2d
js_cocos2dx_audioengine_AudioEngine_play2d : Error processing arguments

你的代码是在触摸屏幕时调用了cc.AudioEngine.play2d函数
通过错误提示看,是你的参数个数或参数类型错误了:

js_cocos2dx_audioengine_AudioEngine_play2d : Error processing arguments

看了下jsb c++源码,参数规则如下:

  1. 只一个参数时,第一个参数是必须是string类型,表示声音文件的路径
  2. 有两个参数时,第一个参数同上,第二个参数为boolean类型,表示是否循环
  3. 有三个参数时, 前两个参数同上,第三个参数为Number,表示音量
  4. 有四个参数时,前三个参数同上,第四个参数为AudioProfile对象,表示声音资源

我看了下1.5.2 jsb绑定源码,你的错误提示在518行,大概在下面这段代码范围:

 if (argc == 2) {
        std::string arg0;
        bool arg1;
        //将输入的第一个参数(从0开始),转换为std::string类型,放到arg0变量里,返回值ok表示是否成功
        ok &= jsval_to_std_string(cx, args.get(0), &arg0);
        arg1 = JS::ToBoolean(args.get(1));
        //这里对ok, cx变量进行检查,不成功就返回false,
        //并输出提示:js_cocos2dx_audioengine_AudioEngine_play2d : Error processing arguments
        JSB_PRECONDITION2(ok, cx, false, "js_cocos2dx_audioengine_AudioEngine_play2d : Error processing arguments");

        int ret = cocos2d::experimental::AudioEngine::play2d(arg0, arg1);
        jsval jsret = JSVAL_NULL;
        jsret = int32_to_jsval(cx, ret);
        args.rval().set(jsret);
        return true;
    }

通过上面解释希望可以帮助你定义jsb函数参数问题了。

感谢大神帮忙解答.我这就去看看!

有解决的没啊,我也遇到了,原生系统就报这个错,Web就没事。。。