2016-09-30 9 views
0
A/art(30231): art/runtime/check_jni.cc:65]  string: 'LevelScore11� 
art/runtime/check_jni.cc:65] ' 
art/runtime/check_jni.cc:65]  in call to NewStringUTF 
A/art(16684): art/runtime/check_jni.cc:65]  from void org.cocos2dx.lib.Cocos2dxRenderer.nativeRender() 
    A/art(16684): art/runtime/check_jni.cc:65] native: #08 pc 003e93f8 /data/app/com.xxxxxxxxxx/lib/arm/libcocos2dcpp.so (_ZN7_JNIEnv12NewStringUTFEPKc+40) 
    art/runtime/check_jni.`enter code here`cc:65] native: #09 pc 003efc8c /data/app/xxxxxxxxxxxxx/lib/arm/libcocos2dcpp.so (_Z19setIntegerForKeyJNIPKci+112) 
    art/runtime/check_jni.cc:65] native: #10 pc 005cd8b8 /data/app/xxxxxxxxxxx/lib/arm/libcocos2dcpp.so (_ZN7cocos2d11UserDefault16setIntegerForKeyEPKci+40) 
    art/runtime/check_jni.cc:65] native: #11 pc 003d62a8 /data/app/xxxxxxxxxxxx/lib/arm/libcocos2dcpp.so (???) 
    art/runtime/check_jni.cc:65] native: #12 pc 004553f4 /data/app/xxxxxxxxxxxx/lib/arm/libcocos2dcpp.so (_ZN7cocos2d8CallFunc7executeEv+156) 
    art/runtime/check_jni.cc:65] native: #13 pc 0045534c /data/app/xxxxxxxxxxxx/lib/arm/libcocos2dcpp.so (_ZN7cocos2d8CallFunc6updateEf+40) 

에 충돌합니다.JNI 해 NewStingUTF 내가 오류가이 기능에</p> <blockquote> <p>해 NewStingUTF 기능에</p> </blockquote> <p>APP 인 충돌을 불러 얻고 많은 파일의 경우 안드로이드

더 최신 버전이 있습니까? 나는 많은 해결책을 찾았지만 행운은 없다. 아무도 나를 도울 수 있습니까?

미리 감사드립니다.

나는 당신의 오류에서하고 오류가 당신이 UserDefaults의 정수 저장하려고 할 때 발생하는 것 같습니다 당신이 JNI와 다른 아무것도하지 않기 때문에 무엇을 볼 수에서
+1

u가 작성한 전체 JNI 호출과이 충돌을 일으키는 게시물을 게시하여 사용자가 수행 한 작업을 볼 수 있습니다. – V01D1

+0

@ IulianVărzaru 오류를 일으키는 파일을 찾을 수 없습니다. –

+0

13 번째 문자가 utf8 문자가 아니므로 NewStringUTF 함수가 충돌합니다. 문자열을 만들기 전에 char *를 덤핑하십시오. –

답변

1

: 그렇다면 확인

A/art(16684): art/runtime/check_jni.cc:65] native: #08 pc 003e93f8 /data/app/com.xxxxxxxxxx/lib/arm/libcocos2dcpp.so (_ZN7_JNIEnv12NewStringUTFEPKc+40) 
    art/runtime/check_jni.`enter code here`cc:65] native: #09 pc 003efc8c /data/app/xxxxxxxxxxxxx/lib/arm/libcocos2dcpp.so (_Z19setIntegerForKeyJNIPKci+112) 
    art/runtime/check_jni.cc:65] native: #10 pc 005cd8b8 /data/app/xxxxxxxxxxx/lib/arm/libcocos2dcpp.so (_ZN7cocos2d11UserDefault16setIntegerForKeyEPKci+40 

을 당신은 어떻게 든하는 int 대신 문자열을 넣을 경우 setIntegerForKey에 UserDefault를 호출, 그것은해야한다 :

:

cocos2d::UserDefault::getInstance()->setIntegerForKey("key", 0); 

또는 당신은 문자열을 저장하려는 경우

UPDATE

좋아, 그래서 우리는 정확히 무슨 일이 일어나고 있는지 볼 수 있습니다 이것을 시도하고 여기에 결과를 게시 :

cd $ANDROID_NDK 
adb logcat | ./ndk-stack -sym $PROJECT_PATH/obj/local/armeabi 

:

은 $ ANDROID_NDK이 경로를 당신의 안드로이드 NDK

$ PROJECT_PATH은 cocos2d-x android 프로젝트에 대한 경로입니다

+0

당신을 도와주세요. 하지만 ** setIntegerForKey **에 문자열을 설정하지 않았습니다. 또한 오류가 UTF-8로 인코딩되었지만 아직 해결책을 찾을 수 없습니다. 내 ** check_jni .cc ** 파일을 어디에서 찾을 수 있습니까? –

+0

UserDefaults에 아무 것도 저장하지 않으십니까? – V01D1

+0

예 UserDefaults에 값을 저장하고 있으며 setIntegerForKey에 정수 값을 저장하고 있습니다. setIntegerForKey에 문자열을 저장하지 않습니다. –