From 5f6cbfb0701d0f4e87ac3656ffcbebdcd1577bde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Str=C3=B8mme?= Date: Fri, 28 Feb 2014 17:09:27 +0100 Subject: Android: Stop ART from complaining about missing thread names. The new Android jvm (ART) complains loudly if we attach without supplying a thread name. Task-number: QTBUG-35441 Change-Id: I962d613be0db50f3ca9a4c786b36003f31c9db14 Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/corelib/kernel/qjni.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/corelib/kernel/qjni.cpp') diff --git a/src/corelib/kernel/qjni.cpp b/src/corelib/kernel/qjni.cpp index 623662a628..437205bf92 100644 --- a/src/corelib/kernel/qjni.cpp +++ b/src/corelib/kernel/qjni.cpp @@ -44,6 +44,7 @@ #include #include #include +#include QT_BEGIN_NAMESPACE @@ -52,6 +53,11 @@ static inline QString keyBase() return QStringLiteral("%1%2%3"); } +static inline QByteArray threadBaseName() +{ + return QByteArrayLiteral("QtThread-"); +} + static QString qt_convertJString(jstring string) { QJNIEnvironmentPrivate env; @@ -179,7 +185,10 @@ QJNIEnvironmentPrivate::QJNIEnvironmentPrivate() { JavaVM *vm = QtAndroidPrivate::javaVM(); if (vm->GetEnv((void**)&jniEnv, JNI_VERSION_1_6) == JNI_EDETACHED) { - if (vm->AttachCurrentThread(&jniEnv, 0) != JNI_OK) + const qulonglong id = reinterpret_cast(QThread::currentThreadId()); + const QByteArray threadName = threadBaseName() + QByteArray::number(id); + JavaVMAttachArgs args = { JNI_VERSION_1_6, threadName, Q_NULLPTR }; + if (vm->AttachCurrentThread(&jniEnv, &args) != JNI_OK) return; } -- cgit v1.2.3