问题
I made a QtQuick program and I found that Qt uses OpenGL ES 2.0 library. I amble to build and deploy my application to all devices, I have including AVD.
But on some devices I receive error log:
W/Qt ( 1246): eglconvenience/qeglconvenience.cpp:289 (void* QEglConfigChooser::chooseConfig()): Cant find EGLConfig, returning null config
W/Qt ( 1246): eglconvenience/qeglconvenience.cpp:289 (void* QEglConfigChooser::chooseConfig()): Cant find EGLConfig, returning null config
W/Qt ( 1246): scenegraph/qsgcontext.cpp:438 (virtual void QSGRenderContext::initialize(QOpenGLContext*)): QSGContext::initialize: depth buffer support missing, expect rendering errors
W/Qt ( 1246): scenegraph/qsgcontext.cpp:440 (virtual void QSGRenderContext::initialize(QOpenGLContext*)): QSGContext::initialize: stencil buffer support missing, expect rendering errors
E/libEGL ( 1246): called unimplemented OpenGL ES API
E/libEGL ( 1246): called unimplemented OpenGL ES API
E/libEGL ( 1246): called unimplemented OpenGL ES API
E/libEGL ( 1246): called unimplemented OpenGL ES API
E/libEGL ( 1246): called unimplemented OpenGL ES API
E/libEGL ( 1246): called unimplemented OpenGL ES API
E/libEGL ( 1246): called unimplemented OpenGL ES API
E/libEGL ( 1246): called unimplemented OpenGL ES API
W/Qt ( 1246): opengl/qopenglshaderprogram.cpp:319 (bool QOpenGLShaderPrivate::compile(QOpenGLShader*)): QOpenGLShader::compile(Vertex): failed
E/libEGL ( 1246): called unimplemented OpenGL ES API
E/libEGL ( 1246): called unimplemented OpenGL ES API
E/libEGL ( 1246): called unimplemented OpenGL ES API
E/libEGL ( 1246): called unimplemented OpenGL ES API
E/libEGL ( 1246): called unimplemented OpenGL ES API
E/libEGL ( 1246): called unimplemented OpenGL ES API
E/libEGL ( 1246): called unimplemented OpenGL ES API
W/Qt ( 1246): opengl/qopenglshaderprogram.cpp:319 (bool QOpenGLShaderPrivate::compile(QOpenGLShader*)): QOpenGLShader::compile(Fragment): failed
E/libEGL ( 1246): called unimplemented OpenGL ES API
E/libEGL ( 1246): called unimplemented OpenGL ES API
E/libEGL ( 1246): called unimplemented OpenGL ES API
E/libEGL ( 1246): called unimplemented OpenGL ES API
E/libEGL ( 1246): called unimplemented OpenGL ES API
E/libEGL ( 1246): called unimplemented OpenGL ES API
E/libEGL ( 1246): called unimplemented OpenGL ES API
E/libEGL ( 1246): called unimplemented OpenGL ES API
D/Qt ( 1246): scenegraph/coreapi/qsgbatchrenderer.cpp:155 (QSGBatchRenderer::ShaderManager::Shader* QSGBatchRenderer::ShaderManager::prepareMaterial(QSGMaterial*)): Renderer failed shader compilation:
D/Qt ( 1246): ""
F/libc ( 1246): Fatal signal 11 (SIGSEGV) at 0x00000008 (code=1), thread 1283 (QSGRenderThread)
There is a thing that those devices other OpenGL 3.0, which is not supported by Qt. Do you know how to fix it?
回答1:
After reinstalling Android SDK, Androind NDK, JDK, Qt to the latest versions applications works good on AVD.
Installed versions:
- Android SDK: 23.0.2
- Android NDK: r9d
- JDK: 1.6
- Qt: 5.2.1
- Os: OS X 10.9.3
来源:https://stackoverflow.com/questions/24580617/cant-run-application-on-some-android-devices