当前位置: 首页 > 知识库问答 >
问题:

Android-JNI//NDK未能找到SIGSEV

史钊
2023-03-14

我有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个答案

党佐
2023-03-14

不确定是否与此有关...

我有代码:

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

在替换为之后

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

不会抛出错误

 类似资料:
  • 在Android NDK项目中,我们需要使用HAL接口访问蓝牙。我们的意图是这样做: 每个人似乎都这么做(在谷歌示例代码中)。当我们试图编译时,似乎出现了一个问题: 我们在Android.mk中正确添加了清单权限和正确添加的库 我们还需要补充什么吗?有没有可以参考的工作项目?

  • 我使用的是Windows 7 64位计算机,目标SDK版本是23。

  • 我正在构建一个使用NDK和Java的android应用程序。应用程序在调试模式下运行良好。但当我试图构建release APK时。它开始崩溃。调试发布APK后,我发现

  • 出于安全考虑,我希望静态链接所有库,包括包含JNI\u OnLoad函数的本机库。我已经读到可以静态链接JNI库(http://docs.oracle.com/javase/8/docs/technotes/guides/jni/spec/invocation.html#library_version)但我用Android Studio做不到。有可能吗? 这是我目前拥有的。 在Java代码中: 在

  • 我有Android原生C代码。然而,有时当我将应用程序发送到后台并返回时,它会与<code>SIGSEGV 在方法中,我添加了: 我有: 然而,当应用程序从后台退出时,< code>android_sigaction不会因该错误而触发。我试图在代码中创建bug(在数组边界之外编写),用按钮触发它,回调被正确调用。这是怎么回事?

  • 问题内容: 我需要javah和android-ndk的帮助。 我尝试为本机方法生成H文件,但是 javah 表示 未找到类文件 。 我的目标类的绝对名称为$ PROJECT_DIRECTORY / src / bt / nativeclient / BtnativeActivity.java, 并包含以下代码: 我试图从以下路径启动 javah : 我试图指定 -classpath 路径: 我尝试