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

App crashes on Android when emoji is used as button text

    XMLWordPrintable

Details

    Description

      I tried to use emoji symbols "⏸️" and "▶️" as player buttons (quick prototype). On Ubuntu 16.04 it worked fine, but on Android (Xiaomi Mi6 MIUI 9) I can't see any text on buttons, just little blue dot (see screenshot). But even worse, my app started to crash in random moments - sometimes during startup, sometimes on exit, sometimes between. I am pretty sure that these symbols causes failures - I did a lot of tests and provided minimal example (see below).

      Crash log of minimal reproducible demo (more logs of my app in attachments logs.txt):

       

      * * * * * * * * * * * * * * * *
      Build fingerprint: 'Xiaomi/sagit/sagit:7.1.1/NMF26X/V9.0.1.0.NCAMIEI:user/release-keys'
      Revision: '0'
      ABI: 'arm'
      pid: 20143, tid: 20167, name: QtThread >>> org.qtproject.example.emojibugdemo <<<
      signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x7a1e5c6e
      r0 bf2fd798 r1 7a1e5c6e r2 00000001 r3 00000001
      r4 c8c57410 r5 00000004 r6 bf2fd798 r7 e7652008
      r8 c8c57468 r9 00000001 sl 00000001 fp c8c57400
      ip c9b38dd8 sp bf2fd758 lr c970ae7b pc c970a784 cpsr 600b0030
      
      backtrace:
      #00 pc 001ad784 /data/app/org.qtproject.example.emojibugdemo-1/lib/arm/libQt5Gui.so (_ZNK18QTextureGlyphCache18textureMapForGlyphEj6QFixed+19)
      #01 pc 001ade77 /data/app/org.qtproject.example.emojibugdemo-1/lib/arm/libQt5Gui.so (_ZN23QImageTextureGlyphCache11fillTextureERKN18QTextureGlyphCache5CoordEj6QFixed+26)

       

      Here is minimal example:

      import QtQuick 2.7
      import QtQuick.Controls 2.0
      import QtQuick.Layouts 1.3
      
      ApplicationWindow {
          visible: true
          width: 640
          height: 480
          title: qsTr("Hello World")
      
          StackView {
              anchors.fill: parent
              initialItem: Page {
                  id: apage
                  property bool isPlaying: false
                  Button {
                      anchors.centerIn: parent
                      text: apage.isPlaying ? "⏸️" : "▶️" // <--------- This causes random failures in adreno.
                      onClicked: apage.isPlaying = !apage.isPlaying
                  }
              }
          }
      }
      

      Attachments

        1. c6cbcf76-ecca-4ee7-a783-5ccb78d04754.jpeg
          c6cbcf76-ecca-4ee7-a783-5ccb78d04754.jpeg
          9 kB
        2. logs.txt
          3 kB
        3. main.qml
          0.6 kB

        Activity

          People

            esabraha Eskil Abrahamsen Blomfeldt
            qtros Roman Shchekin
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: