首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >std:线程导致android中的SIGABRT

std:线程导致android中的SIGABRT
EN

Stack Overflow用户
提问于 2016-12-15 06:51:17
回答 1查看 807关注 0票数 1

我正在尝试从jni in android创建一个简单的android。但我的应用程序崩溃时出现了以下错误。

代码语言:javascript
复制
A/libc: Fatal signal 6 (SIGABRT) at 0x00005606 (code=-6), thread 22059

JNI资料来源:

代码语言:javascript
复制
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:

代码语言:javascript
复制
APP_STL := gnustl_static
APP_CPPFLAGS += -std=c++11

我从主UI线程中的活动中调用init方法。从后台线程来看,它也不起作用。

EN

回答 1

Stack Overflow用户

发布于 2017-02-15 19:00:40

嗯,它似乎是一个“众所周知,没有公开”的漏洞在clang,还没有修复在目前的NDK版本(在撰写时,r10d为我)。

该解决方案似乎使用g++进行编译。要做到这一点,只需在gradle脚本中添加以下行:

代码语言:javascript
复制
externalNativeBuild {
    cmake {
            arguments "-DANDROID_TOOLCHAIN=gcc"
    }
}

一些链接:

希望能帮上忙..。(我花了很多时间在这上面,呵呵!)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41158084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档