别裁伪体亲风雅,转益多师是汝师。这篇文章主要讲述Android - JNI // NDK无法找到SIGSEV相关的知识,希望能为你提供帮助。
【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(""))
错误不会被抛出
推荐阅读
- 附注册破解补丁下载 Adobe Dreamweaver CC 2018免费激活图文详细教程
- Android - JNI / NDK - 与SIGSEV崩溃 - 未触发信号处理
- 在Android上使用Address Sanitizer构建但使用CMake
- Android Studio NDK链接器错误未定义引用'cv :: _ OutputArray :: _ OutputArray(cv :: Mat&)'
- 在Android Studio 3.0中构建PIE和非PIE可执行文件
- JNI_OnLoad通常用于Android NDK吗()
- Android Studio 3.0.1在Android.mk中注释掉行
- Android Studio 3.0.1忽略Application.mk中的APP_ABI()
- Android NDK将参数传递给本机方法