2016-10-05 6 views
0

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でエラーが表示されます。最近のアプリからアプリを削除してもう一度アプリを開いたときにエラーが発生します。それはエミュレータのためか、私は間違ったことをしましたか?私はアンドロイドndkで非常に新しいです。

ありがとうございました。

+1

あなたは、このエラーが発生するコードをポストする必要があります。 – Michael

+0

@Michael、ありがとう。私は問題を見つけて今解決しています。私はすでに自分の投稿に答えました。 –

答えて

1

最後に、私は問題の原因を知っています。 GetStringUTFCharsのパラメータにエラーがあり、nullでした。このGetStringUTFCharsの構文は次のとおりです。

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

そして私はPARAMTER 文字列にnullを得たので、解決策は、使用前にこの機能をnullにチェックすることです。たとえば:

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

参考文献:https://stackoverflow.com/a/15268628/5241603

関連する問題