2013-12-20 106 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++代碼。