我试图解决从Android 5.x上的Cocos2d-x键盘输入崩溃的问题,这是因为我从带有在键盘上找到的许多表情符号的文本创建CCImage的(尽管有些工作,但是大多数却没有。)在Android 4.x上,设备仅显示乱码的文本/其他字符。崩溃的根源是JNI的NewStringUTF()调用。它根本不支持Android 5 / Lollipop中的所有2、3、4字节utf-8字符。
此崩溃发生在使用带有工具链4.8的NDK 10e的cocos2d-x v2.2.6(并在3.x上得到确认)(不确定其中是否有太大的不同,我们在使用Android Studio和I之前使用了9d)可以肯定我们遇到了这个问题,但棒棒糖的使用量却少得多。)
如果您从不按任何未经修改的utf-8符号(即坚持使用ascii),则可能永远不会看到此问题。
Log Cat:
12-11 01:02:17.460 10451-10959/com.appsomniacs.da2.debug A/art: sart/runtime/check_jni.cc:65] string: ''
12-11 01:02:17.460 10451-10959/com.appsomniacs.da2.debug A/art: sart/runtime/check_jni.cc:65] in call to NewStringUTF
12-11 01:02:17.460 10451-10959/com.appsomniacs.da2.debug A/art: sart/runtime/check_jni.cc:65] from void org.cocos2dx.lib.Cocos2dxHelper.nativeSetEditTextDialogResult(byte[])
12-11 01:02:17.460 10451-10959/com.appsomniacs.da2.debug A/art: sart/runtime/check_jni.cc:65] "GLThread 45716" prio=5 tid=14 Runnable
12-11 01:02:17.460 10451-10959/com.appsomniacs.da2.debug A/art: sart/runtime/check_jni.cc:65] | group="main" sCount=0 dsCount=0 obj=0x12c0c6c0 self=0xf442bc00
12-11 01:02:17.460 10451-10959/com.appsomniacs.da2.debug A/art: sart/runtime/check_jni.cc:65] | sysTid=10959 nice=0 cgrp=default sched=0/0 handle=0xf450c380
12-11 01:02:17.460 10451-10959/com.appsomniacs.da2.debug A/art: sart/runtime/check_jni.cc:65] | state=R schedstat=( 0 0 0 …Run Code Online (Sandbox Code Playgroud)