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
Forum Updated to NodeBB v4.3 + New Features

Plugin verification data mismatch error on my plugin load

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