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 10.3k 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.
  • 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