Qt quick проект не запускается на эмуляторе android



  • Доброго времени суток.
    Никак не могу заставить работать qt quick на эмуляторе андройда. Проект с использованием виджетов собирается и запускается нормально на эмуляторе. Не зависимо под какой эмулятор собирать (x86 или arm-v7a) при запуске проекта с Qt Quick экран становится белого цвета и больше никаких визуальных элементов нет.
    Ниже два лога запуска примеров приложений идущих вместе с Qt.

    пример с виджетами, который запускается хорошо:
    arrowpad Aplication Output log.

    Starting remote process.E/libprocessgroup( 8239): failed to make and chown /acct/uid_10054: Read-only file system
    W/Zygote  ( 8239): createProcessGroup failed, kernel missing CONFIG_CGROUP_CPUACCT?
    I/art     ( 8239): Not late-enabling -Xcheck:jni (already on)
    I/ActivityManager( 1516): Start proc org.qtproject.example.arrowpad for activity org.qtproject.example.arrowpad/org.qtproject.qt5.android.bindings.QtActivity: pid=8239 uid=10054 gids={50054, 9997, 3003, 1028, 1015} abi=x86
    I/Qt      ( 8239): qt start
    D/OpenGLRenderer( 8239): Render dirty regions requested: true
    D/        ( 8239): HostConnection::get() New Host Connection established 0xad7f0a00, tid 8239
    D/Atlas   ( 8239): Validating map...
    D/        ( 8239): HostConnection::get() New Host Connection established 0xb040a160, tid 8255
    I/OpenGLRenderer( 8239): Initialized EGL, version 1.4
    D/OpenGLRenderer( 8239): Enabling debug mode 0
    D/        ( 8239): HostConnection::get() New Host Connection established 0xa3fc3ee0, tid 8258
    

    пример с Qt Quick, который не работает:
    stocqt Aplication Output log.

    Starting remote process.E/libprocessgroup( 8904): failed to make and chown /acct/uid_10053: Read-only file system
    W/Zygote  ( 8904): createProcessGroup failed, kernel missing CONFIG_CGROUP_CPUACCT?
    I/art     ( 8904): Not late-enabling -Xcheck:jni (already on)
    I/ActivityManager( 1516): Start proc org.qtproject.example.stocqt for activity org.qtproject.example.stocqt/org.qtproject.qt5.android.bindings.QtActivity: pid=8904 uid=10053 gids={50053, 9997, 3003, 1028, 1015} abi=x86
    I/Qt      ( 8904): qt start
    D/OpenGLRenderer( 8904): Render dirty regions requested: true
    D/        ( 8904): HostConnection::get() New Host Connection established 0xad749a60, tid 8904
    D/Atlas   ( 8904): Validating map...
    D/        ( 8904): HostConnection::get() New Host Connection established 0xb040a160, tid 8920
    I/OpenGLRenderer( 8904): Initialized EGL, version 1.4
    D/OpenGLRenderer( 8904): Enabling debug mode 0
    D/        ( 8904): HostConnection::get() New Host Connection established 0xb0117160, tid 8921
    D/        ( 8904): HostConnection::get() New Host Connection established 0xb0a9d1f0, tid 8927
    W/libstocqt( 8904): (null):0 ((null)): QOpenGLShader::compile(Vertex): ERROR: Valid GLSL but not GLSL ES
    W/libstocqt( 8904): (null):0 ((null)): *** Problematic Vertex shader source code ***
    W/libstocqt( 8904): (null):0 ((null)): #define lowp
    W/libstocqt( 8904): #define mediump
    W/libstocqt( 8904): #define highp
    W/libstocqt( 8904): #line 1
    W/libstocqt( 8904): attribute highp vec4 vertexCoord;
    W/libstocqt( 8904): attribute highp vec4 vertexColor;
    W/libstocqt( 8904):
    W/libstocqt( 8904): uniform highp mat4 matrix;
    W/libstocqt( 8904): uniform highp float opacity;
    W/libstocqt( 8904):
    W/libstocqt( 8904): varying lowp vec4 color;
    W/libstocqt( 8904):
    W/libstocqt( 8904): attribute highp float _qt_order;
    W/libstocqt( 8904): uniform highp float _qt_zRange;
    W/libstocqt( 8904): void main()
    W/libstocqt( 8904): {
    W/libstocqt( 8904):     gl_Position = matrix * vertexCoord;
    W/libstocqt( 8904):     color = vertexColor * opacity;
    W/libstocqt( 8904):     gl_Position.z = (gl_Position.z * _qt_zRange + _qt_order) * gl_Position.w;
    W/libstocqt( 8904): }
    W/libstocqt( 8904): (null):0 ((null)): ***
    W/libstocqt( 8904): (null):0 ((null)): QOpenGLShader::compile(Fragment): ERROR: Valid GLSL but not GLSL ES
    W/libstocqt( 8904): (null):0 ((null)): *** Problematic Fragment shader source code ***
    W/libstocqt( 8904): (null):0 ((null)): #define lowp
    W/libstocqt( 8904): #define mediump
    W/libstocqt( 8904): #define highp
    W/libstocqt( 8904): #line 1
    W/libstocqt( 8904): varying lowp vec4 color;
    W/libstocqt( 8904):
    W/libstocqt( 8904): void main()
    W/libstocqt( 8904): {
    W/libstocqt( 8904):     gl_FragColor = color;
    W/libstocqt( 8904): }
    W/libstocqt( 8904): (null):0 ((null)): ***
    W/libstocqt( 8904): (null):0 ((null)): shader compilation failed:
    W/libstocqt( 8904): ""
    W/libstocqt( 8904): (null):0 ((null)): QOpenGLShaderProgram::uniformLocation( matrix ): shader program is not linked
    W/libstocqt( 8904): (null):0 ((null)): QOpenGLShaderProgram::uniformLocation( opacity ): shader program is not linked
    W/libstocqt( 8904): (null):0 ((null)): QOpenGLShader::compile(Vertex): ERROR: Valid GLSL but not GLSL ES
    W/libstocqt( 8904): (null):0 ((null)): *** Problematic Vertex shader source code ***
    W/libstocqt( 8904): (null):0 ((null)): #define lowp
    W/libstocqt( 8904): #define mediump
    W/libstocqt( 8904): #define highp
    

    И так на много-много страниц вниз похожие ошибки с шейдерами.

    W/libstocqt( 8904): (null):0 ((null)): shader compilation failed:
    

    Ниже строчки

    D/        ( 8904): HostConnection::get() New Host Connection established 0xb0a9d1f0, tid 8927
    

    в логе все выделяется красным.
    Я новичок в QT и так и не смог найти решение данной проблемы.



  • Qt Quick заточен под openGL. А по логам проблема как раз в этом. Если не отображается даже стандартное приложение "Hello world", то дело однозначно в эмуляторе.
    Какая версия андроида в эмуляторе?
    На какой платфоре работаете? Такие проблемы были в например в virtualbox.
    Попробуйте собрать на железе, чтобы просто убедиться в корректной работе.



  • @Noxhardkind
    отлаживайте лучше в режиме разработчика на реальном android устройстве, эмулятор сильно медленный



  • @Noxhardkind
    У меня такая же проблема, Вы смогли ее решить?



  • Если кто то знает как решить проблему отображения приложения написанного на Qt Quick 2 в AVD эмуляторе, опишите решение плс.



  • @Andrey-Shmelew Сильно медленный эмулятор из SDK, т.к. он эмулирует работу процессора смартфона, но есть другой эмулятор, Genymotion, в нём используются образы андроида заточенного под 32 битные процессоры, отлаживается всё просто идеально, в ките выбираешь android for x86, далее жмёшь деплой, тебе будет список запущенного смартфона из Genymotion и дело в шляпе.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.