2016-10-05 3 views
0

Я получил ошибку android ndk в коде JniLibs. Я получил ошибку:Ошибка приложения в эмуляторе 7.0: JNI ОПРЕДЕЛЕННАЯ ОШИБКА ПРИ ПРИМЕНЕНИИ: GetStringUTFChars получил NULL jstring

JNI DETECTED ERROR IN APPLICATION: GetStringUTFChars received NULL jstring

Ниже приведена подробная информация об ошибке. Я не могу опубликовать все, потому что он слишком длинный.

10-05 17:12:01.100 3773-3773/com.example.myapp A/art: art/runtime/java_vm_ext.cc:470] JNI DETECTED ERROR IN APPLICATION: GetStringUTFChars received NULL jstring 
10-05 17:12:01.100 3773-3773/com.example.myapp A/art: art/runtime/java_vm_ext.cc:470]  in call to GetStringUTFChars 
10-05 17:12:01.101 3773-3773/com.example.myapp A/art: art/runtime/java_vm_ext.cc:470]  from java.lang.String com.example.myapp.othercode.PassCodeUtil.genPassCode(android.content.Context) 
10-05 17:12:01.101 3773-3773/com.example.myapp A/art: art/runtime/java_vm_ext.cc:470] "main" prio=5 tid=1 Runnable 
10-05 17:12:01.101 3773-3773/com.example.myapp A/art: art/runtime/java_vm_ext.cc:470] | group="main" sCount=0 dsCount=0 obj=0x75518a50 self=0x7ffef3695a00 
10-05 17:12:01.101 3773-3773/com.example.myapp A/art: art/runtime/java_vm_ext.cc:470] | sysTid=3773 nice=0 cgrp=default sched=0/0 handle=0x7ffef7ff9b40 
10-05 17:12:01.101 3773-3773/com.example.myapp A/art: art/runtime/java_vm_ext.cc:470] | state=R schedstat=(0 0 0) utm=3 stm=2 core=0 HZ=100 
10-05 17:12:01.101 3773-3773/com.example.myapp A/art: art/runtime/java_vm_ext.cc:470] | stack=0x7fffa7798000-0x7fffa779a000 stackSize=8MB 
10-05 17:12:01.101 3773-3773/com.example.myapp A/art: art/runtime/java_vm_ext.cc:470] | held mutexes= "mutator lock"(shared held) 
. 
. 
. 

JniLibs хорошо работает в эмуляторе ниже этого и показывает ошибку в версии эмулятора 7.0. Ошибка возникает, когда я удаляю приложение из последних приложений и снова открываю приложение. Это из-за эмулятора, или я сделал что-то неправильно. Я очень новичок в android ndk.

Благодарим за помощь.

+1

Вы должны размещать код, в котором происходит эта ошибка. – Michael

+0

@ Майкл, спасибо. Я нашел проблему и решил ее сейчас. Я уже ответил на свой пост. –

ответ

1

И, наконец, я знаю причину проблемы. Я получил ошибку в параметре GetStringUTFChars, и я был равен нулю. Синтаксис этого GetStringUTFChars является:

const char * GetStringUTFChars(JNIEnv *env, jstring string, jboolean *isCopy);

И я получил нуль на строки параметра Я, поэтому решение проверить нуль перед использованием этой функции. Например:

if (mystring == NULL){ 
    return NULL; 
} 
// function GetStringUTFChars 

Ссылки: https://stackoverflow.com/a/15268628/5241603