cocos2dx-js 游戏崩溃

BaseMessage.prototype._writeShort = function (value) {
cc.log(“BaseMessage _writeShort in”)
cc.log("value = ", value)
var len = 2;
cc.log(“BaseMessage _writeShort in 1”)
var tmp = new Uint8Array(len);
cc.log("BaseMessage _writeShort in 2 len = ", len)
for (var i = 0; i < len; i++) {
this._writeIndex++;
tmp[i] = (0xff & (value >> (8 * (len - i - 1))));
//this._buf[this._writeIndex++]=(0xff & (value>>(8*(len-i-1))));
cc.log(“i = %d, this._writeIndex = %d, value = %d , tmp[i] = %d”, i, this._writeIndex, value, tmp[i])
}
cc.log(“BaseMessage _writeShort in 3”)
this._tmp[this._tmpIndex++] = tmp;
cc.log(“BaseMessage _writeShort in 4”)
}

for循环执行完一次后就崩溃。
崩溃代码:

JS: BaseMessage _writeShort in 1
JS: BaseMessage _writeShort in 2 len =     2
JS: i = 0,  this._writeIndex = 1,   value = 0 , tmp[i] = 0
JS: i = 1,  this._writeIndex = 2,   value = 0 , tmp[i] = 0
JS: BaseMessage _writeShort in 3
JS: BaseMessage _writeShort in 4
JS: BaseMessage _writeShort in
JS: value =     185

04-27 16:08:25.878 23298-23298/com.cxhy.dhh D/cocos2d-x debug info: JS: BaseMessage _writeShort in 1
JS: BaseMessage _writeShort in 2 len = 2
JS: i = 0, this._writeIndex = 3, value = 185 , tmp[i] = 0
JS: i = 1, this._writeIndex = 4, value = 185 , tmp[i] = 185
JS: BaseMessage _writeShort in 3
JS: BaseMessage _writeShort in 4
JS: BaseMessage write 1
JS: hwsfrz
JS: [“hwsfrz”,“327664”,“0b80UxWiDGKAd+bLOXJlafn53mUTbIndwrbCKDzTpq9dxKWIM8w7W7KNR+JGLs2oRkvz7D1bEzmFbSS5D1ImQrrxzUk”,“660”]
JS: BaseMessage _writeString in
JS: value = hwsfrz
JS: BaseMessage _writeString in 1 6
04-27 16:08:25.879 23298-23298/com.cxhy.dhh D/cocos2d-x debug info: JS: BaseMessage _writeShort in
JS: value = 6
JS: BaseMessage _writeShort in 1
JS: BaseMessage _writeShort in 2 len = 2
JS: i = 0, this._writeIndex = 5, value = 6 , tmp[i] = 0
04-27 16:08:25.880 23298-23298/com.cxhy.dhh A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x30 in tid 23298 (com.cxhy.dhh)
04-27 16:08:25.962 23649-23649/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: ‘HUAWEI/MHA-AL00/HWMHA:7.0/HUAWEIMHA-AL00/C00B231:user/release-keys’
Revision: ‘0’
ABI: ‘arm’
pid: 23298, tid: 23298, name: com.cxhy.dhh >>> com.cxhy.dhh <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x30
r0 00000000 r1 e8e86664 r2 00000000 r3 00000000
r4 ff98c254 r5 00000003 r6 00000001 r7 00000000
r8 00000001 r9 00000000 sl e6006480 fp 00000037
ip c6f309fc sp ff98c1f0 lr c5c51120 pc c5c51120 cpsr 400f0010
04-27 16:08:25.965 23649-23649/? A/DEBUG: backtrace:
#00 pc 00e23120 /data/app/com.cxhy.dhh-1/lib/arm/libcocos2djs.so

同样的代码再ios下可以跑的通,在android下跑不通。

java部分 接sdk回调 数据也是正常的,就在js for循环时只执行了1次就崩溃。

public static void SFUserLogin(boolean allowAutoLogin){
AppActivity.getAppActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
manager.login(true, new OnLoginListener() {

            @Override
            public void onLoginSuccess(LoginResult result) {
                class sfLoginResultRun implements Runnable{
                    public  LoginResult result;
                    public  boolean allowAutoLogin;
                    @Override
                    public void run() {
                        try {
                            Cocos2dxJavascriptJavaBridge.evalString("cc.log(\"javaToJs come in\")");
                            JSONObject jsonResult = new JSONObject();
                            jsonResult.put("sdkid", "hwsfrz");
                            jsonResult.put("appid", "660");
                            jsonResult.put("userId", result.uid);
                            jsonResult.put("token", result.sessionId);
                            String b = jsonResult.toString();
                            Cocos2dxJavascriptJavaBridge.evalString("bs.SDKManager.getInstance().onLoginEvent(" + b + ")");
                        }
                        catch (org.json.JSONException e){
                            Cocos2dxJavascriptJavaBridge.evalString("cc.log(\" catch error \")");
                        }

                    }
                }
                sfLoginResultRun runable = new sfLoginResultRun();
                runable.result = result;bs.SDKManager.getInstance()");

                    AppActivity.getAppActivity().runOnUiThread(runable);

            }

            @Override
            public void onLoginFailure(int code, String msg) {
                ToastUtil.showLongToast(getAppActivity(), "onLoginFailure");
            }
        });
    }
});

};