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

Plugin verification data mismatch error on my plugin load

Scheduled Pinned Locked Moved General and Desktop
16 Posts 3 Posters 8.8k 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
    #1

    Hi,

    When I try to load my plugin it gives me error "Plugin verification data mismatch"

    how can i resolve???

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

      Hi,

      AFAIK, build and use the plugin with the same version of Qt as well as ensure that you have matching debug/release build.

      What version of Qt/OS/Compiler are you using ?

      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
        #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