Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Plugin verification data mismatch error on my plugin load
Qt 6.11 is out! See what's new in the release blog

Plugin verification data mismatch error on my plugin load

Scheduled Pinned Locked Moved General and Desktop
16 Posts 3 Posters 12.0k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Offline
    A Offline
    Abin
    wrote on last edited by
    #3

    sorry SGaist

    this error occurs when it tries to load .a file but when it tries to load .dll
    void MainFrame::loadPlugin() fileName "serverplugind.dll"
    void MainFrame::loadPlugin() pluginLoaded false
    void MainFrame::loadPlugin() pluginLoaded "Unknown error"

    im getting unknown error :(

    Im using Qt 5.3, for both win and android

    1 Reply Last reply
    0
    • SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on last edited by
      #4

      Do you mean you are trying to load a static plugin ?

      Interested in AI ? www.idiap.ch
      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

      1 Reply Last reply
      0
      • A Offline
        A Offline
        Abin
        wrote on last edited by
        #5

        Sorry to confuse you.

        I am building my project in Release mode. I have already build my plugin code in release mode and my plugin lib name is serverplugin.dll.

        While running I try to load serverplugin.dll,

        @QDir pluginsDir(qApp->applicationDirPath());
        qDebug() << Q_FUNC_INFO << "pluginsDir.dirName"<< pluginsDir.dirName();
        #if defined(Q_OS_WIN)
        if (pluginsDir.dirName().toLower() == "debug" || pluginsDir.dirName().toLower() == "release") {
        pluginsDir.cdUp();
        pluginsDir.cdUp();
        pluginsDir.cd("plugins");
        }
        #endif
        foreach (QString fileName, pluginsDir.entryList(QDir::Files))
        {
        qDebug() << Q_FUNC_INFO << "fileName" << fileName;
        QPluginLoader pluginLoader(pluginsDir.absoluteFilePath(fileName));
        bool pluginLoaded = pluginLoader.isLoaded();
        qDebug() << Q_FUNC_INFO << "pluginLoaded" << pluginLoaded;
        qDebug() << Q_FUNC_INFO << "pluginLoaded" <<
        pluginLoader.errorString();
        QObject *plugin = pluginLoader.instance();
        if (plugin)
        {
        qDebug()<<Q_FUNC_INFO<<"plugin instance is loaded";
        m_pServerInterface = qobject_cast<ServerInterface *>(plugin);
        if (NULL != m_pServerInterface)
        {
        qDebug() << Q_FUNC_INFO << "plugin loaded successfully";
        }
        else
        {
        //error screen should be displayed.
        qDebug() << Q_FUNC_INFO <<
        "plugin object casted to "
        "ServerInterface is Null";
        }
        }
        }@

        I get :

        void MainFrame::loadPlugin() fileName "serverplugin.dll"
        void MainFrame::loadPlugin() pluginLoaded false
        void MainFrame::loadPlugin() pluginLoaded "Unknown error"
        void MainFrame::loadPlugin() plugin instance is loaded
        void MainFrame::loadPlugin() plugin loaded successfully

        ie, My plugin is not loaded successfully but still instance is returned. This happens in windows. But when I build for android it totally fails to get any instance of the plugin

        1 Reply Last reply
        0
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on last edited by
          #6

          Does your plugin have any dependencies ?

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          1 Reply Last reply
          0
          • A Offline
            A Offline
            Abin
            wrote on last edited by
            #7

            yes, it has

            QT += widgets
            QT += network
            QT += sql

            But when I run from the Qt Creator it should be fine right? My plugin .pro file is

            @TEMPLATE = lib
            CONFIG += plugin
            QT += widgets
            QT += network
            QT += sql
            INCLUDEPATH += ../..
            HEADERS = serverplugin.h
            server.h
            serverdbmanager.h
            serverfunctionthread.h
            commondefenitions.h
            SOURCES = serverplugin.cpp
            server.cpp
            serverdbmanager.cpp
            serverfunctionthread.cpp
            TARGET = $$qtLibraryTarget(serverplugin)
            DESTDIR = ../plugins

            OTHER_FILES +=
            serverplugin.json
            @

            1 Reply Last reply
            0
            • SGaistS Offline
              SGaistS Offline
              SGaist
              Lifetime Qt Champion
              wrote on last edited by
              #8

              Did you check that you have all the needed Qt libraries deployed on your target ?

              Interested in AI ? www.idiap.ch
              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

              1 Reply Last reply
              0
              • A Offline
                A Offline
                Abin
                wrote on last edited by
                #9

                I did not get it... It would be helpful if you could explain a bit more... When I run it from Qt Creator do I have to worry about it? I should check it only while creating my executable package.. correct?

                1 Reply Last reply
                0
                • SGaistS Offline
                  SGaistS Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote on last edited by
                  #10

                  If I understood you correctly, it only fails on android, right ?

                  Interested in AI ? www.idiap.ch
                  Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                  1 Reply Last reply
                  0
                  • A Offline
                    A Offline
                    Abin
                    wrote on last edited by
                    #11

                    No, when the below lines are executed the cases in windows and android ill explain

                    @bool pluginLoaded = pluginLoader.isLoaded();
                    QObject *plugin = pluginLoader.instance();
                    if (plugin)
                    {
                    m_pServerInterface = qobject_cast<ServerInterface *>(plugin);
                    if (NULL != m_pServerInterface)
                    {
                    qDebug() << Q_FUNC_INFO << "plugin loaded successfully";
                    }
                    else
                    {
                    qDebug() << Q_FUNC_INFO <<
                    "plugin object casted to "
                    "ServerInterface is Null";
                    }
                    }@

                    win:
                    pluginLoaded is false
                    *QObject plugin is not null and @qDebug() << Q_FUNC_INFO << "plugin loaded successfully";@ is executed
                    so able to call plugin functions

                    Android:
                    pluginLoaded is false
                    *QObject plugin is null
                    so not able to call plugin functions

                    1 Reply Last reply
                    0
                    • SGaistS Offline
                      SGaistS Offline
                      SGaist
                      Lifetime Qt Champion
                      wrote on last edited by
                      #12

                      Can you post the plugin header file ?

                      Interested in AI ? www.idiap.ch
                      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                      1 Reply Last reply
                      0
                      • A Offline
                        A Offline
                        Abin
                        wrote on last edited by
                        #13

                        @#ifndef SERVERPLUGIN_H
                        #define SERVERPLUGIN_H

                        #include <QObject>
                        #include <QtPlugin>
                        #include "acepos/aceclient/serverinterface.h"

                        #include <QThread>
                        #include "server.h"

                        class ServerPlugin : public QObject,
                        public ServerInterface
                        {
                        Q_OBJECT
                        Q_PLUGIN_METADATA(IID "org.qt-project.Qt.AcePos.ServerInterface/1.0" FILE "serverplugin.json")
                        Q_INTERFACES(ServerInterface)
                        QThread *m_pServerThread;
                        Server *m_pServer;
                        callbackFunction m_callbackFunction;

                        public:
                        ServerPlugin():m_pServerThread(NULL), m_pServer(NULL){}

                        private slots:
                        void handleServiceStartNotify();

                        public:
                        bool startServerService(callbackFunction);
                        bool stopServerService();
                        };

                        #endif
                        @

                        1 Reply Last reply
                        0
                        • L Offline
                          L Offline
                          LeaA
                          wrote on last edited by
                          #14

                          Hi
                          Can you tell us how you solved this problem?

                          A 1 Reply Last reply
                          0
                          • L LeaA

                            Hi
                            Can you tell us how you solved this problem?

                            A Offline
                            A Offline
                            Abin
                            wrote on last edited by
                            #15

                            @LeaA
                            I didn't solve it.

                            L 1 Reply Last reply
                            0
                            • A Abin

                              @LeaA
                              I didn't solve it.

                              L Offline
                              L Offline
                              LeaA
                              wrote on last edited by
                              #16

                              @Abin

                              I solved it..
                              check the Q_OBJECT macro and the inheritance from QObject.

                              1 Reply Last reply
                              0

                              • Login

                              • Login or register to search.
                              • First post
                                Last post
                              0
                              • Categories
                              • Recent
                              • Tags
                              • Popular
                              • Users
                              • Groups
                              • Search
                              • Get Qt Extensions
                              • Unsolved