2016-09-30 29 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 NewStringUTFは、私は、エラーがこの機能で</p> <blockquote> <p>NewStringUTF機能で</p> </blockquote> <p>APPというクラッシュを呼び出すために取得しています多くのファイルのためにアンドロイド

新しいバージョンはありますか?私は非常に多くの解決策を見つけましたが、運はありません。誰も私を助けることができますか?

ありがとうございます。

+1

あなたが行ったことを見ることができるように、私が作成したJNIコール全体とこのクラッシュの原因を投稿してください。 – V01D1

+0

@IulianVărzaruエラーを引き起こすファイルが見つかりません –

+0

13文字目がutf8文字ではないため、NewStringUTF関数がクラッシュします。文字列を作成する前にchar *をダンプしてみてください。 –

答えて

1

私はあなたのエラーから見ることができるものから、あなたがJNIで何かをやっていないので、あなたがUserDefaultsに整数を保存しようとしているときにエラーが起こっているようだ:

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 

だからここでチェック

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

たり、文字列を保存したい場合:あなたは何とか代わりにint型の文字列を入れた場合、それがあるべきsetIntegerForKeyにUserDefaultを呼び出している

cocos2d::UserDefault::getInstance()->setStringForKey("userCards", "value); 

UPDATE

[OK]をので、私たちは、正確に何が起こっているかを見ることができ、これを試してみて、ここで結果を投稿:

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

は$ ANDROID_NDKがパスをであるあなたのアンドロイドNDK

$ PROJECT_PATHはあなたのcocos2d-xアンドロイドプロジェクトへのパスです

+0

あなたを助けてください。 ** setIntegerForKey **には文字列を設定していません。また、UTF-8でエンコーディングされているかもしれませんが、まだ解決策を見つけることができません。 ** check_jni .cc **ファイルはどこにありますか? –

+0

UserDefaultsに何かを保存していますか? – V01D1

+0

はい私はUserDefaultsに値を保存しており、setIntegerForKeyに整数値を保存しています。setIntegerForKeyに文字列を保存しません。 –

関連する問題

 関連する問題