K.S*_*eak 5 java-native-interface android android-ndk android-emulator
我在 JniLibs 代码上遇到错误 android ndk。我有错误:
JNI 在应用程序中检测到错误:GetStringUTFChars 收到 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)
.
.
.
Run Code Online (Sandbox Code Playgroud)
JniLibs 在下面的模拟器中运行良好,并在模拟器 7.0 版中显示错误。当我从最近的应用程序中删除应用程序并再次打开该应用程序时会发生错误。是因为模拟器还是我做错了什么。我对android ndk很陌生。
感谢任何帮助。
终于,我知道了问题的原因。我在 GetStringUTFChars 参数上遇到错误,并且我为空。这个GetStringUTFChars的语法是:
const char * GetStringUTFChars(JNIEnv *env, jstring string, jboolean *isCopy);
我在参数string上得到 null ,所以解决方案是在使用此函数之前检查 null 。例如:
if (mystring == NULL){
return NULL;
}
// function GetStringUTFChars
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6124 次 |
| 最近记录: |