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