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

QGLWidget unusable on Android

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P1: Critical
    • 5.2.0 RC1
    • 5.2.0 Beta1
    • QPA
    • None
    • KUbuntu 13.10 64bits as compile system
      Android 4.1.1 on Wiko Cink+ (ARM Cortex-A9 dual-core, SoC Mediatek MT6577, GPU PowerVR SGX 531) as run device
    • Android
    • 6ea7336e4aed916c5c9602c51d7d9646a289e83b

    Description

      The following basic program doesn't work on Android (armeabi-v7a) :

      #include <QtWidgets/QApplication>
      #include <QtOpenGL/QGLWidget>
      #include <QtDebug>
      int main(int argc, char *argv[])
      {
        QApplication a(argc, argv);
        qDebug() << __LINE__;
        QGLWidget glw;
        qDebug() << __LINE__;
        glw.show();
        qDebug() << __LINE__;
        return a.exec();
      }
      

      It crashes on the "glw.show()" line, here's the end of the application output:

      V/InputMethodManager(  551): START INPUT: com.android.internal.policy.impl.PhoneWindow$DecorView@41f01ca0 ic=null tba=android.view.inputmethod.EditorInfo@41f42bb0 controlFlags=#104
      D/Qt      (  551): ../../test_qt520_w/main.cpp:7 (int main(int, char**)): 7 
      D/dalvikvm(  551): threadid=11: interp stack at 0x537dd000
      D/dalvikvm(  551): threadid=11: bye!
      D/Qt      (  551): ../../test_qt520_w/main.cpp:9 (int main(int, char**)): 9 
      D/dalvikvm(  551): threadid=11: interp stack at 0x5388d000
      D/dalvikvm(  551): threadid=11: bye!
      D/dalvikvm(  551): threadid=11: interp stack at 0x5388d000
      D/dalvikvm(  551): threadid=11: bye!
      F/libc    (  551): Fatal signal 11 (SIGSEGV) at 0x00000004 (code=1), thread 696 (le.test_qt520_w)
      V/InputMethodManager(  551): Starting input: Bind result=InputBindResult{null com.android.inputmethod.latin/.LatinIME #2934}
      V/InputMethodManager(  551): Starting input: view=com.android.internal.policy.impl.PhoneWindow$DecorView@41f01ca0
      V/InputMethodManager(  551): Starting input: tba=android.view.inputmethod.EditorInfo@41f45350 ic=null
      

      Changing target API doesn't help.

      This has been found while trying to have the attached program "test_qt520.zip" to run. It uses QGraphicsProxyWidget to draw QWidget-based controls on top of an OpenGL scene defined as viewport of a QGraphicsScene/QGraphicsView.

      This works perfectly on the desktop. When tried using Qt 5.1.1, the application starts but widgets are not drawn correctly (the OpenGL scene is good though). When tried using Qt 5.2beta1, the program crashes, the last message being:

      W/Qt      ( 2995): kernel/qplatformwindow.cpp:261 (virtual void QPlatformWindow::setParent(const QPlatformWindow*)): This plugin does not support setParent!
      F/libc    ( 2995): Fatal signal 11 (SIGSEGV) at 0x00000004 (code=1), thread 3077 (mple.test_qt520)
      

      Attachments

        1. test_qt520.zip
          387 kB
          Yves Bailly

        Issue Links

          For Gerrit Dashboard: QTBUG-34412
          # Subject Branch Project Status CR V

          Activity

            People

              agocs Laszlo Agocs (Inactive)
              ybailly Yves Bailly
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes