项目里面需要从js传递表情符号到java来做android推送的需求。测试的时候发现在android5.02系统上NewStringUTF会报错。调试的时候会闪退,运行的时候表情变成乱码。具体是在frameworks/js-bindings/cocos2d-x/cocos/scripting/js-bindings/manual/platform/android/CCJavascriptJavaBridge.cpp文件中。
网上搜了下,没有详细的解决方案,但是提供了思路,就是不传string类型,而是传递byte数组类型,再到java端把byte数组转换成string类型。jni是支持byte数组的,用符号 [B 来表示。但是CCJavascriptJavaBridge中不支持。所以需要在CCJavascriptJavaBridge中修改一下。
这样就可以使用byte数组了,在js端这样使用
在java端可以这样用