⚠️ Forum Maintenance: Feb 6th, 8am - 14pm (UTC+2)

Can't find platform plugins when qt gets loaded by jni

  • Hello

    So this is a variant of the "failed to load platform plugin" issue with the Qt platform abstraction. I have a C++ Library which depends on the Qt Framework. Everything works when I create a C++ Application and call the library with the Qt Dependencies in the project folder.

    But when I create a JNI and set the JVM to load the Library, I get the standard error "This application failed to start because it could not find or load the Qt platform plugin X", even though all dependencies + the platforms folder are in the same directory.
    I read the qt 4.8 deployment doc to plugins (http://qt-project.org/doc/qt-4.8/deployment-plugins.html) and I guess the problem is that "QCoreApplication::applicationDirPath() " is not pointing to the right directory. I tried setting the QT_PLUGIN_PATH environment variable but it didn't have any effect.

    What am I doing wrong? I am certainly not the first one to use Qt and JNI.

  • try collect all required plugins in one folder (e.g. /plugins near executed file) and set folder in main.cpp like

    QApplication a(argc, argv);
    QString pluginsPath = a.applicationDirPath()+"/plugins";

  • Lifetime Qt Champion

    Hi and welcome to devnet,

    What's your deployment target ?

Log in to reply