Attach Qt main c++ thread to jvm at the early beginning

We need it
1. to be sure, that thread is already attached to jvm
when we attach debugger to the process
2. to have a human-friendly name for main native thread

Change-Id: I1e572a0f09ec8af24a910835aaa6d302f6f2cb43
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
This commit is contained in:
Vyacheslav Koscheev 2017-10-06 15:22:47 +07:00
parent e00b295344
commit 10da5fb55b

View File

@ -450,6 +450,17 @@ static jboolean startQtAndroidPlugin(JNIEnv* /*env*/, jobject /*object*//*, jobj
static void *startMainMethod(void */*data*/)
{
{
JNIEnv* env = nullptr;
JavaVMAttachArgs args;
args.version = JNI_VERSION_1_6;
args.name = "QtMainThread";
args.group = NULL;
JavaVM *vm = QtAndroidPrivate::javaVM();
if (vm != 0)
vm->AttachCurrentThread(&env, &args);
}
QVarLengthArray<const char *> params(m_applicationParams.size());
for (int i = 0; i < m_applicationParams.size(); i++)
params[i] = static_cast<const char *>(m_applicationParams[i].constData());