Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
线程导致android JNI中的SIGABRT_Android_C++_Multithreading - Fatal编程技术网

线程导致android JNI中的SIGABRT

线程导致android JNI中的SIGABRT,android,c++,multithreading,Android,C++,Multithreading,我正试图从android中的jni创建一个简单的std:thread。但是我的应用程序由于以下错误而崩溃 A/libc: Fatal signal 6 (SIGABRT) at 0x00005606 (code=-6), thread 22059 JNI资料来源: void threadRun(){ sleep(5); } JNIEXPORT void JNICALL Java_com_helloworld_JNIWrapper_init (JNIEnv *env, jobjec

我正试图从
android
中的
jni
创建一个简单的
std:thread
。但是我的应用程序由于以下错误而崩溃

A/libc: Fatal signal 6 (SIGABRT) at 0x00005606 (code=-6), thread 22059
JNI资料来源:

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
方法。从后台线程来看,它也不起作用。

好吧,它似乎是一个“众所周知的,未公开”的漏洞,在当前的NDK版本中还没有修复(在撰写本文时,我是r10d)

这个解决方案似乎是用g++来编译的。为此,只需在gradle脚本中添加以下行:

externalNativeBuild {
    cmake {
            arguments "-DANDROID_TOOLCHAIN=gcc"
    }
}
一些链接:

希望这有助于。。。(我花了很多时间在这上面,doh!)