2013-12-20 64 views
6

我正在开发Android应用程序。这个开发是在Linux上完成的,使用Qt Creator和C++和QML。在Qt Android上缺少QSGContext

正如我在随后的一天脱下我的头发和那件事似乎并不太明显了,我不知道是否有人能有任何有关错误线索调试器冲洗出来:

Could not load shared library symbols for 85 libraries, e.g. /system/bin/linker. 

W/Qt  (24399): kernel/qcoreapplication.cpp:418 
    (QCoreApplicationPrivate::QCoreApplicationPrivate(int&, char**, uint)): WARNING: QApplication was 
     not created in the main() thread. 

D/libEGL (24399): loaded /system/lib/egl/libEGL_tegra.so 
D/libEGL (24399): loaded /system/lib/egl/libGLESv1_CM_tegra.so 
D/libEGL (24399): loaded /system/lib/egl/libGLESv2_tegra.so 
D/OpenGLRenderer(24399): Enabling debug mode 0 
I/Choreographer(24399): Skipped 35 frames! The application may be doing 
    too much work on its main thread. 
D/Qt  (24399): qtcpserverconnection.cpp:173 (void QTcpServerConnection::listen()): QML Debugger: 
    Waiting for connection on port 48309... 
D/dalvikvm(24399): GC_CONCURRENT freed 396K, 6% free 7689K/8152K, paused 4ms+2ms, total 56ms 

W/Qt  (24399): scenegraph/qsgcontext.cpp:440 (virtual void  
    QSGRenderContext::initialize(QOpenGLContext*)): QSGContext::initialize: 
      stencil buffer support missing, expect rendering errors 

它是一个Qt Creator只是一些如何不正确链接库的问题?

+0

你在使用任何外部库吗? – saiarcot895

+0

只有qml和C++才能在Android上运行。 – Judith

+1

最后一个错误似乎表明你的android设备在它的opengl中没有模板缓冲区支持。这似乎更像是与特定设备兼容的问题,而不是Qt安装的问题 – Jay

回答

3

前段时间我遇到过类似的问题。对我而言,解决的不是安装Qt5,而是从源代码构建它。

这里你可以找到所有的步骤:

Build Qt 5 for Android

你必须也让所有的setups有你Kits正常工作。

请记住,虽然Qt QML对于大多数应用程序来说都很不错,但如果您决定在您的应用程序中使用Android的某些更具体的功能,您将遇到麻烦,因为它仍然不能与Android API集成100% - 例如Geofencing和其他Google地图功能。在这种情况下,要继续使用带有JNI的Android SDK Java,以便在其下面使用C++代码。