[Interest] Qt 5.11.2 for Android Prebuilt- Crash in the First Non-Qt JNI

coroberti . coroberti at gmail.com
Thu Nov 1 20:39:24 CET 2018


Hi,
I was trying to build my Qt widget app that is working on Android
since Qt 5.3, later 5.7 and 5.9
using downloaded offline Qt 5.11.2.

Using Qt JNI seems to be working properly, like:
RequestPermissions =

QAndroidJniObject("com/domain/myapp/permissions/RequestPermissions",
                                  "(Landroid/app/Activity;)V",
                                  QtAndroid::androidActivity().object<jobject>()
                                  );

        // Checking for errors in the JNI
        QAndroidJniEnvironment env;
        if (env->ExceptionCheck()) {
            // Handle exception here.
            env->ExceptionClear();
        }

Unfortunately, the very first non-Qt JNI in my app crashes it.
JNIEnv* env;
    if (g_javaVM->AttachCurrentThread(&env, NULL)<0)
    {
        return false;
    }
    jboolean res = env->CallStaticBooleanMethod(s_sharingClassID,
s_sharingMyFuncMethodID);
    g_javaVM->DetachCurrentThread();

This is not something specific JNI, but really the first one non-Qt
JNI crashes it.


Is there any initialization or some magic in the new Qt JNI that could impact
non-Qt JNI?

Should I detach thread manually after Qt JNI?


rt : art/runtime/runtime.cc:1537]
Thread[11,tid=6741,Native,Thread*=0xe4ab5f00,peer=0x12c11ee0,"qtMainLoopThread"]
attempting to detach while still running code
F art : art/runtime/runtime.cc:424] Runtime aborting...
F art : art/runtime/runtime.cc:424] Aborting thread:
F art : art/runtime/runtime.cc:424] "qtMainLoopThread" prio=5 tid=11 Native
F art : art/runtime/runtime.cc:424] | group="" sCount=0 dsCount=0
obj=0x12c11ee0 self=0xe4ab5f00
F art : art/runtime/runtime.cc:424] | sysTid=6741 nice=0 cgrp=default
sched=0/0 handle=0xf07bc920
F art : art/runtime/runtime.cc:424] | state=R schedstat=( 78120491
95764296 62 ) utm=6 stm=1 core=0 HZ=100
F art : art/runtime/runtime.cc:424] | stack=0xf06ba000-0xf06bc000
stackSize=1038KB
F art : art/runtime/runtime.cc:424] | held mutexes= "abort lock"

F art : art/runtime/runtime.cc:424] native: #00 pc 0058848e
/system/lib/libart.so
(_ZN3art15DumpNativeStackERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEEiP12BacktraceMapPKcPNS_9ArtMethodEPv+238)
F art : art/runtime/runtime.cc:424] native: #01 pc 00553ebe
/system/lib/libart.so
(_ZNK3art6Thread9DumpStackERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEEbP12BacktraceMap+526)
F art : art/runtime/runtime.cc:424] native: #02 pc 00550ebb
/system/lib/libart.so
(_ZNK3art6Thread4DumpERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEEbP12BacktraceMap+75)
F art : art/runtime/runtime.cc:424] native: #03 pc 0053c8d3
/system/lib/libart.so
(_ZNK3art10AbortState10DumpThreadERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEEPNS_6ThreadE+67)
F art : art/runtime/runtime.cc:424] native: #04 pc 0053c6a7
/system/lib/libart.so
(_ZNK3art10AbortState4DumpERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEE+615)
F art : art/runtime/runtime.cc:424] native: #05 pc 0052cc0b
/system/lib/libart.so (_ZN3art7Runtime5AbortEPKc+155)
F art : art/runtime/runtime.cc:424] native: #06 pc 0011def3
/system/lib/libart.so (_ZN3art10LogMessageD1Ev+1939)
F art : art/runtime/runtime.cc:424] native: #07 pc 0052c679
/system/lib/libart.so (_ZN3art7Runtime19DetachCurrentThreadEv+377)
F art : art/runtime/runtime.cc:424] native: #08 pc 003a1d85
/system/lib/libart.so (_ZN3art3JII19DetachCurrentThreadEP7_JavaVM+69)
F art : art/runtime/runtime.cc:424] native: #09 pc 0013572d
/data/app/com.domain.myapplication-2/lib/x86/libMyapplication.so
(_ZN14AndroidSharing12isMyFuncEv+109)
F art : art/runtime/runtime.cc:424] native: #10 pc 00099f30
/data/app/com.domain.myapplication-2/lib/x86/libMyapplication.so
(_ZN12GPreferences19check_if_myfuncEv+48)
F art : art/runtime/runtime.cc:424] native: #11 pc 00074d09
/data/app/com.domain.myapplication-2/lib/x86/libMyapplication.so
(_ZN8TextEditC1EP7QWidget+2377)
F art : art/runtime/runtime.cc:424] native: #12 pc 00051b7b
/data/app/com.domain.myapplication-2/lib/x86/libMyapplication.so
(main+747)
F art : art/runtime/runtime.cc:424] at
org.qtproject.qt5.android.QtNative$6.run(QtNative.java:359)
F art : art/runtime/runtime.cc:424] at
org.qtproject.qt5.android.QtThread$1.run(QtThread.java:61)
F art : art/runtime/runtime.cc:424] at java.lang.Thread.run(Thread.java:761)
F art : art/runtime/runtime.cc:424] Dumping all threads without
appropriate locks held: thread list lock mutator lock
F art : art/runtime/runtime.cc:424] All threads:

F art : art/runtime/runtime.cc:424] DALVIK THREADS (14):

F art : art/runtime/runtime.cc:424] "qtMainLoopThread" prio=5 tid=11 Runnable
F art : art/runtime/runtime.cc:424] | sysTid=6741 nice=0 cgrp=default
sched=0/0 handle=0xf07bc920
F art : art/runtime/runtime.cc:424] | state=R schedstat=( 92273427
100558772 70 ) utm=6 stm=2 core=0 HZ=100
F art : art/runtime/runtime.cc:424] | stack=0xf06ba000-0xf06bc000
stackSize=1038KB
F art : art/runtime/runtime.cc:424] | held mutexes= "abort lock"
"mutator lock"(shared held)

F art : art/runtime/runtime.cc:424] native: #00 pc 0058848e
/system/lib/libart.so
(_ZN3art15DumpNativeStackERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEEiP12BacktraceMapPKcPNS_9ArtMethodEPv+238)
F art : art/runtime/runtime.cc:424] native: #01 pc 00553ebe
/system/lib/libart.so
(_ZNK3art6Thread9DumpStackERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEEbP12BacktraceMap+526)
F art : art/runtime/runtime.cc:424] native: #02 pc 00550ebb
/system/lib/libart.so
(_ZNK3art6Thread4DumpERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEEbP12BacktraceMap+75)
F art : art/runtime/runtime.cc:424] native: #03 pc 00570d44
/system/lib/libart.so (_ZN3art14DumpCheckpoint3RunEPNS_6ThreadE+1092)
F art : art/runtime/runtime.cc:424] native: #04 pc 00566d8e
/system/lib/libart.so
(_ZN3art10ThreadList13RunCheckpointEPNS_7ClosureE+590)
F art : art/runtime/runtime.cc:424] native: #05 pc 00566902
/system/lib/libart.so
(_ZN3art10ThreadList4DumpERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEEb+962)
F art : art/runtime/runtime.cc:424] native: #06 pc 0053cb28
/system/lib/libart.so
(_ZNK3art10AbortState14DumpAllThreadsERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEEPNS_6ThreadE+424)
F art : art/runtime/runtime.cc:424] native: #07 pc 0053c876
/system/lib/libart.so
(_ZNK3art10AbortState4DumpERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEE+1078)
F art : art/runtime/runtime.cc:424] native: #08 pc 0052cc0b
/system/lib/libart.so (_ZN3art7Runtime5AbortEPKc+155)
F art : art/runtime/runtime.cc:424] native: #09 pc 0011def3
/system/lib/libart.so (_ZN3art10LogMessageD1Ev+1939)
F art : art/runtime/runtime.cc:424] native: #10 pc 0052c679
/system/lib/libart.so (_ZN3art7Runtime19DetachCurrentThreadEv+377)
F art : art/runtime/runtime.cc:424] native: #11 pc 003a1d85
/system/lib/libart.so (_ZN3art3JII19DetachCurrentThreadEP7_JavaVM+69)
F art : art/runtime/runtime.cc:424] native: #12 pc 0013572d
/data/app/com.domain.myapplication-2/lib/x86/libMyapplication.so
(_ZN14AndroidSharing12isMyFuncEv+109)
F art : art/runtime/runtime.cc:424] native: #13 pc 00099f30
/data/app/com.domain.myapplication-2/lib/x86/libMyapplication.so
(_ZN12GPreferences19check_if_myfuncEv+48)
F art : art/runtime/runtime.cc:424] native: #14 pc 00074d09
/data/app/com.domain.myapplication-2/lib/x86/libMyapplication.so
(_ZN8TextEditC1EP7QWidget+2377)
F art : art/runtime/runtime.cc:424] native: #15 pc 00051b7b
/data/app/com.domain.myapplication-2/lib/x86/libMyapplication.so
(main+747)
F art : art/runtime/runtime.cc:424] native: #16 pc 0001ca00
/data/data/com.domain.myapplication/qt-reserved-files/plugins/platforms/android/libqtforandroid.so
(???)
F art : art/runtime/runtime.cc:424] native: #17 pc 0003bef6
/data/app/com.domain.myapplication-2/oat/x86/base.odex
(Java_org_qtproject_qt5_android_QtNative_startQtApplication__+98)
F art : art/runtime/runtime.cc:424] at
org.qtproject.qt5.android.QtNative.startQtApplication(Native method)
F art : art/runtime/runtime.cc:424] at
org.qtproject.qt5.android.QtNative$6.run(QtNative.java:359)
F art : art/runtime/runtime.cc:424] at
org.qtproject.qt5.android.QtThread$1.run(QtThread.java:61)
F art : art/runtime/runtime.cc:424] at java.lang.Thread.run(Thread.java:761)
F art : art/runtime/runtime.cc:424]
F art : art/runtime/runtime.cc:424] "Jit thread pool worker thread 0"
prio=5 tid=2 Runnable (still starting up)
F art : art/runtime/runtime.cc:424] | group="" sCount=0 dsCount=0
obj=0x0 self=0xe9c08000


Thanks in advance

Kind regards,
Robert



More information about the Interest mailing list