Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-88076

Crash on Android 6

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P2: Important
    • None
    • 5.15.1
    • Extras: Android
    • None
    • Android
    • 2b4a581f34854d9c0bb8d53626d929abd0661bd8 (qt/qtbase/dev) 1b1ce981d485cdf88d19e51707fd1a95d19d075f (qt/qtbase/5.15)

    Description

      My Qt application triggers a crash when run in Android 6. Relevant part of the stack trace:

      F art     : art/runtime/java_vm_ext.cc:410] JNI DETECTED ERROR IN APPLICATION: JNI NewString called with pending exception java.lang.NoSuchMethodError: No virtual method putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; in class Ljava/util/HashMap; or its super classes (declaration of 'java.util.HashMap' appears in /system/framework/core-libart.jar)
      F art     : art/runtime/java_vm_ext.cc:410]   at long org.qtproject.qt5.android.QtNative.getSize(android.content.Context, java.lang.String) (QtNative.java:270)
      F art     : art/runtime/java_vm_ext.cc:410]   at void org.qtproject.qt5.android.QtNative.startQtApplication() (QtNative.java:-2)
      F art     : art/runtime/java_vm_ext.cc:410]   at void org.qtproject.qt5.android.QtNative$7.run() (QtNative.java:611)
      F art     : art/runtime/java_vm_ext.cc:410]   at void org.qtproject.qt5.android.QtThread$1.run() (QtThread.java:61)
      F art     : art/runtime/java_vm_ext.cc:410]   at void java.lang.Thread.run() (Thread.java:818)
      F art     : art/runtime/java_vm_ext.cc:410]
      F art     : art/runtime/java_vm_ext.cc:410]     in call to NewString
      F art     : art/runtime/java_vm_ext.cc:410]     from void org.qtproject.qt5.android.QtNative.startQtApplication()
      F art     : art/runtime/java_vm_ext.cc:410] "qtMainLoopThread" prio=5 tid=10 Runnable
      F art     : art/runtime/java_vm_ext.cc:410]   | group="main" sCount=0 dsCount=0 obj=0x12d22ee0 self=0xacc35d00
      F art     : art/runtime/java_vm_ext.cc:410]   | sysTid=2794 nice=0 cgrp=default sched=0/0 handle=0xaa8bf930
      F art     : art/runtime/java_vm_ext.cc:410]   | state=R schedstat=( 0 0 0 ) utm=80 stm=12 core=0 HZ=100
      F art     : art/runtime/java_vm_ext.cc:410]   | stack=0xaa7bd000-0xaa7bf000 stackSize=1038KB
      F art     : art/runtime/java_vm_ext.cc:410]   | held mutexes= "mutator lock"(shared held)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #00 pc 0058bd02  /system/lib/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, int, char const*, art::ArtMethod*, void*)+226)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #01 pc 0055194e  /system/lib/libart.so (art::Thread::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) const+286)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #02 pc 003a482f  /system/lib/libart.so (art::JavaVMExt::JniAbort(char const*, char const*)+1247)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #03 pc 003a5eac  /system/lib/libart.so (art::JavaVMExt::JniAbortV(char const*, char const*, char*)+116)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #04 pc 00163a10  /system/lib/libart.so (art::ScopedCheck::AbortF(char const*, ...)+62)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #05 pc 0016d9d2  /system/lib/libart.so (art::ScopedCheck::CheckThread(_JNIEnv*)+1890)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #06 pc 0016e4e1  /system/lib/libart.so (art::ScopedCheck::Check(art::ScopedObjectAccess&, bool, char const*, art::JniValueType*) (.constprop.114)+1489)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #07 pc 0017c0ec  /system/lib/libart.so (art::CheckJNI::NewString(_JNIEnv*, unsigned short const*, int)+620)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #08 pc 00249fed  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Core_x86.so (QJNIObjectPrivate::fromString(QString const&)+81)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #09 pc 0001f2cb  /data/app/de.mzmn.mzmn-1/lib/x86/libplugins_platforms_qtforandroid_x86.so (???)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #10 pc 0016bd98  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Core_x86.so (QFileDevice::size() const+64)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #11 pc 0016acbc  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Core_x86.so (QFile::size() const+32)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #12 pc 0001c2c2  /data/app/de.mzmn.mzmn-1/lib/x86/libKF5Archive_x86.so (KZip::openArchive(QFlags<QIODevice::OpenModeFlag>)+4066)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #13 pc 0000ad90  /data/app/de.mzmn.mzmn-1/lib/x86/libKF5Archive_x86.so (KArchive::open(QFlags<QIODevice::OpenModeFlag>)+288)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #14 pc 0000f187  /data/app/de.mzmn.mzmn-1/lib/x86/libmzmn_x86.so (Story::setSource(QUrl const&)+663)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #15 pc 00018557  /data/app/de.mzmn.mzmn-1/lib/x86/libmzmn_x86.so (???)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #16 pc 00018b04  /data/app/de.mzmn.mzmn-1/lib/x86/libmzmn_x86.so (Story::qt_metacall(QMetaObject::Call, int, void**)+340)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #17 pc 001fdb99  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Core_x86.so (QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**)+73)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #18 pc 002a675a  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Qml_x86.so (QQmlPropertyPrivate::write(QObject*, QQmlPropertyData const&, QVariant const&, QQmlContextData*, QFlags<QQmlPropertyData::WriteFlag>)+3210)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #19 pc 001b0ad0  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Qml_x86.so (QV4::QObjectWrapper::setProperty(QV4::ExecutionEngine*, QObject*, QQmlPropertyData*, QV4::Value const&)+3568)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #20 pc 001b2174  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Qml_x86.so (QV4::QObjectWrapper::virtualPut(QV4::Managed*, QV4::PropertyKey, QV4::Value const&, QV4::Value*)+884)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #21 pc 002ad96c  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Qml_x86.so (QQmlComponentPrivate::setInitialProperties(QV4::ExecutionEngine*, QV4::QmlContext*, QV4::Value const&, QV4::Value const&, RequiredProperties&, QObject*)+1356)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #22 pc 000f407d  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5QuickTemplates2_x86.so (???)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #23 pc 000f41ac  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5QuickTemplates2_x86.so (???)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #24 pc 000f4766  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5QuickTemplates2_x86.so (???)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #25 pc 002b1030  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Qml_x86.so (QQmlIncubatorPrivate::incubate(QQmlInstantiationInterrupt&)+1584)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #26 pc 002b089f  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Qml_x86.so (QQmlEnginePrivate::incubate(QQmlIncubator&, QQmlContextData*)+431)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #27 pc 002ad250  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Qml_x86.so (QQmlComponent::create(QQmlIncubator&, QQmlContext*, QQmlContext*)+400)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #28 pc 000f3c68  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5QuickTemplates2_x86.so (???)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #29 pc 000f9a62  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5QuickTemplates2_x86.so (???)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #30 pc 000f5c5b  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5QuickTemplates2_x86.so (QQuickStackView::push(QQmlV4Function*)+1227)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #31 pc 00126279  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5QuickTemplates2_x86.so (???)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #32 pc 001266cf  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5QuickTemplates2_x86.so (QQuickStackView::qt_metacall(QMetaObject::Call, int, void**)+127)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #33 pc 0028ddf2  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Qml_x86.so (QQmlVMEMetaObject::metaCall(QObject*, QMetaObject::Call, int, void**)+546)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #34 pc 001fdb89  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Core_x86.so (QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**)+57)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #35 pc 002e8c26  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Qml_x86.so (???)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #36 pc 001b3ebe  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Qml_x86.so (QV4::QObjectMethod::callInternal(QV4::Value const*, QV4::Value const*, int) const+1230)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #37 pc 001b39e6  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Qml_x86.so (QV4::QObjectMethod::virtualCall(QV4::FunctionObject const*, QV4::Value const*, QV4::Value const*, int)+38)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #38 pc 001d3918  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Qml_x86.so (???)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #39 pc 001d2201  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Qml_x86.so (???)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #40 pc 00166da2  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Qml_x86.so (QV4::Function::call(QV4::Value const*, QV4::Value const*, int, QV4::ExecutionContext const*)+530)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #41 pc 003056a5  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Qml_x86.so (QQmlJavaScriptExpression::evaluate(QV4::CallData*, bool*)+629)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #42 pc 002b7936  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Qml_x86.so (QQmlBoundSignalExpression::evaluate(void**)+1046)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #43 pc 002b809a  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Qml_x86.so (???)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #44 pc 002e8833  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Qml_x86.so (QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**)+531)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #45 pc 00294a81  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Qml_x86.so (QQmlData::signalEmitted(QAbstractDeclarativeData*, QObject*, int, void**)+913)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #46 pc 0021ebbf  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Core_x86.so (???)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #47 pc 0021b474  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Core_x86.so (QMetaObject::activate(QObject*, int, int, void**)+54)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #48 pc 0028df8b  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Qml_x86.so (QQmlVMEMetaObject::metaCall(QObject*, QMetaObject::Call, int, void**)+955)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #49 pc 001fdb89  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Core_x86.so (QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**)+57)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #50 pc 002e8c26  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Qml_x86.so (???)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #51 pc 001b7216  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Qml_x86.so (???)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #52 pc 001b4684  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Qml_x86.so (???)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #53 pc 001b3eff  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Qml_x86.so (QV4::QObjectMethod::callInternal(QV4::Value const*, QV4::Value const*, int) const+1295)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #54 pc 001b39e6  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Qml_x86.so (QV4::QObjectMethod::virtualCall(QV4::FunctionObject const*, QV4::Value const*, QV4::Value const*, int)+38)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #55 pc 001ebf4e  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Qml_x86.so (QV4::Runtime::CallQmlContextPropertyLookup::call(QV4::ExecutionEngine*, unsigned int, QV4::Value*, int)+158)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #56 pc 001d3fca  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Qml_x86.so (???)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #57 pc 001d2201  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Qml_x86.so (???)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #58 pc 00166da2  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Qml_x86.so (QV4::Function::call(QV4::Value const*, QV4::Value const*, int, QV4::ExecutionContext const*)+530)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #59 pc 003056a5  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Qml_x86.so (QQmlJavaScriptExpression::evaluate(QV4::CallData*, bool*)+629)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #60 pc 002b7936  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Qml_x86.so (QQmlBoundSignalExpression::evaluate(void**)+1046)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #61 pc 002b809a  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Qml_x86.so (???)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #62 pc 002e8833  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Qml_x86.so (QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**)+531)
      F art     : art/runtime/java_vm_ext.cc:410]   native: #63 pc 00294a81  /data/app/de.mzmn.mzmn-1/lib/x86/libQt5Qml_x86.so (QQmlData::signalEmitted(QAbstractDeclarativeData*, QObject*, int, void**)+913)
      F art     : art/runtime/java_vm_ext.cc:410]   at org.qtproject.qt5.android.QtNative.startQtApplication(Native method)
      F art     : art/runtime/java_vm_ext.cc:410]   at org.qtproject.qt5.android.QtNative$7.run(QtNative.java:611)
      F art     : art/runtime/java_vm_ext.cc:410]   at org.qtproject.qt5.android.QtThread$1.run(QtThread.java:61)
      F art     : art/runtime/java_vm_ext.cc:410]   at java.lang.Thread.run(Thread.java:818)
      F art     : art/runtime/java_vm_ext.cc:410]

      This has been tested in an AVD running Android 6 x86. Android 10 works without problems.

      Does the HashMap implementation in Android 6 not support
      `putIfAbsent()`? In any case, the documentation for Qt 5.15 state Android 5.0 as the minimum requirement, so this should work.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            qtandroidteam Qt Android Team
            pumphaus Arno Rehn
            Votes:
            1 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes