Android - JNI // NDK无法找到SIGSEV

时间:2017-12-22 13:25:23

标签: android c++ android-ndk

我有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

所有代码都不是“我的”。只有“熟悉”才是第一线,但我不知道在哪里找到它。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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

我有代码:

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

替换为

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

错误未被抛出