我正在尝试从jni in android创建一个简单的android。但我的应用程序崩溃时出现了以下错误。
A/libc: Fatal signal 6 (SIGABRT) at 0x00005606 (code=-6), thread 22059JNI资料来源:
void threadRun(){
sleep(5);
}
JNIEXPORT void JNICALL Java_com_helloworld_JNIWrapper_init
(JNIEnv *env, jobject obj)
{
thread th(threadRun);
th.join(); //or th.detach() doesn't work either
}Application.mk:
APP_STL := gnustl_static
APP_CPPFLAGS += -std=c++11我从主UI线程中的活动中调用init方法。从后台线程来看,它也不起作用。
发布于 2017-02-15 19:00:40
嗯,它似乎是一个“众所周知,没有公开”的漏洞在clang,还没有修复在目前的NDK版本(在撰写时,r10d为我)。
该解决方案似乎使用g++进行编译。要做到这一点,只需在gradle脚本中添加以下行:
externalNativeBuild {
cmake {
arguments "-DANDROID_TOOLCHAIN=gcc"
}
}一些链接:
希望能帮上忙..。(我花了很多时间在这上面,呵呵!)
https://stackoverflow.com/questions/41158084
复制相似问题