Qt Android上缺少QSGContext

Jud*_*ith 6 c++ qt opengl-es android-ndk qml

我正在开发Android应用程序.开发是在Linux上完成的,使用Qt Creator和C++和QML.

当我在一整天中拔掉我的头发并且那件事似乎不太明显时,我想知道是否有人对调试器刷新的错误有任何线索:

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
Run Code Online (Sandbox Code Playgroud)

这是一个缺少某些库的问题,还是Qt Creator只是一些如何不正确链接库?

Jes*_*hen 3

我不久前遇到了一些类似的问题。对我来说解决的问题是不要安装 Qt5,只需从源代码构建它。

在这里您可以找到所有步骤:

为 Android 构建 Qt 5

您还必须进行所有设置才能使您的套件正常工作。

请记住,虽然 Qt QML 对于大多数应用程序来说都很好,但如果您决定在应用程序中使用 Android 的一些更具体的功能,您将会遇到麻烦,因为它仍然没有 100% 与 Android API 集成 - 例如地理围栏和其他 Google 地图功能。在这种情况下,正确的方法仍然是使用带有 JNI 的 Android SDK Java 来处理其下面的 C++ 代码。