Android - JNI // NDK无法找到SIGSEV
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android - JNI // NDK无法找到SIGSEV相关的知识,希望对你有一定的参考价值。
我有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(""))
错误不会被抛出
以上是关于Android - JNI // NDK无法找到SIGSEV的主要内容,如果未能解决你的问题,请参考以下文章
jni/ndk: android studio external tool 自定义工具(Javah/ndk-build命令)