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

QGLWidget unusable on Android



    • 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


      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__;
        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)


        Issue Links

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



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



                Gerrit Reviews

                  There are no open Gerrit changes