为什么我的Android应用程序在我的线程退出时崩溃?当我的线程退出时,为什么我的Android应用程序崩溃?
在logcat
当我的应用程序崩溃时,我看到以下输出。
D/dalvikvm: threadid=13: thread exiting, not yet detached (count=0)
D/dalvikvm: threadid=13: thread exiting, not yet detached (count=1)
E/dalvikvm: threadid=13: native thread exited without detaching
E/dalvikvm: VM aborting
我不确定是什么线程导致这种情况。该应用程序使用带有少数STL线程实例的C++库(std::thread
)。下面是如何我线程库工作的一个例子:
std::thread thread([context]() { ... });
thread.detach();
库工程没有在iOS,OS X和Linux的任何此类错误。我的猜测是错误不是因为缺少对std::thread::detach
的呼叫。
不知道这是相关的:
- 我用
gnustl_static
- 库通过NDK集成,但低级别的代码是平台无关的,所以我不打电话
JavaVM::AttachCurrentThread
或JavaVM::DetachCurrentThread
我不知道该做什么或寻找什么。
看着这个链接http://stackoverflow.com/questions/26534304/android-jni-call-attachcurrentthread-without-detachcurrentthread。您的logcat与分离前退出的线程的源代码中的错误消息相匹配。对不起,如果这没有帮助。 –