Android -JNI // NDK无法找到Sigsev

Android - JNI//NDK Failed to locate SIGSEV

本文关键字:Sigsev -JNI NDK Android      更新时间:2023-10-16

我有ndk c 代码,会产生sigsegv错误。我无法追踪它。自定义信号处理返回空堆栈跟踪。

如果我在Android Studio调试器中遇到了错误,我得到了此跟踪:

线程93 -rxNewThreadSche

void std::__1::__tree_remove<std::__1::__tree_node_base<void*>*>(std::__1::__tree_node_base<void*>*, std::__1::__tree_node_base<void*>*) 0x00000000f0ae86ea
art::gc::allocator::RosAlloc::RefillRun(art::Thread*, unsigned int) 0x00000000f0ae2174
art::gc::allocator::RosAlloc::AllocFromRun(art::Thread*, unsigned int, unsigned int*, unsigned int*, unsigned int*) 0x00000000f0ae22de
art::mirror::Object* art::gc::Heap::AllocObjectWithAllocator<true, true, art::mirror::SetLengthVisitor>(art::Thread*, art::mirror::Class*, unsigned int, art::gc::AllocatorType, art::mirror::SetLengthVisitor const&) 0x00000000f0a8f086
art::mirror::ObjectArray<art::mirror::Object*>::Alloc(art::Thread*, art::mirror::Class*, int, art::gc::AllocatorType) 0x00000000f0bc1fe0
art::Array_createObjectArray(_JNIEnv*, _jclass*, _jclass*, int) 0x00000000f0c44af0
java.lang.Object java.lang.reflect.Array.createObjectArray(java.lang.Class, int) 0x000000007229d5d2

任何代码都不是"我的"。只有"熟悉"是第一行,但我不知道在哪里可以找到它。有什么想法吗?

不确定它是否与此相关...

我有代码:

env->NewObjectArray(size, env->FindClass("java/lang/String"), NULL)

替换为

env->NewObjectArray(size, env->FindClass("java/lang/String"), env->NewStringUTF(""))

错误未丢弃