爲什麼我的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與分離前退出的線程的源代碼中的錯誤消息相匹配。對不起,如果這沒有幫助。 –