Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. Symbian Project Errors when Mobility Added
Forum Updated to NodeBB v4.3 + New Features

Symbian Project Errors when Mobility Added

Scheduled Pinned Locked Moved Mobile and Embedded
10 Posts 3 Posters 4.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.
  • A Offline
    A Offline
    ad5xj
    wrote on last edited by
    #1

    I have created a Symbian project that compiles and runs flawlessly on my C7. However, I wanted to add the QOrientationSensor to the project so I could tell when to reformat the screen by signals from the sensors.

    my current .pro file :
    @
    QT += declarative network webkit
    CONFIG += qt mobility threads exceptions
    MOBILITY += sensors

    folder_01.source = qml
    folder_01.target = qml
    DEPLOYMENTFOLDERS = folder_01

    QML_IMPORT_PATH =

    symbian:TARGET.UID3 = 0xE6DE572B

    Setup capabilities on Symbian

    symbian:TARGET.CAPABILITY +=
    LocalServices
    ReadUserData
    WriteUserData
    NetworkServices
    UserEnvironment
    Location
    ReadDeviceData

    HEADERS += wwvsource.h noaasource.h
    orientation.h

    SOURCES += main.cpp
    orientation.cpp

    include(qmlapplicationviewer/qmlapplicationviewer.pri)
    qtcAddDeployment()

    maemo5|maemo6 {
    OTHER_FILES +=
    qtc_packaging/debian_fremantle/rules
    qtc_packaging/debian_fremantle/README
    qtc_packaging/debian_fremantle/copyright
    qtc_packaging/debian_fremantle/control
    qtc_packaging/debian_fremantle/compat
    qtc_packaging/debian_fremantle/changelog
    }

    OTHER_FILES +=
    qml/images/aindexscale.svg
    qml/images/glass.svg
    qml/images/kindexscale.svg
    qml/images/led-green.svg
    qml/images/led-red.svg
    qml/images/led-yel.svg
    qml/images/lineedit.svg
    qml/images/lineedit.sci
    qml/images/needle.svg
    qml/images/needle_shadow.svg
    qml/images/sfiscale-max.svg
    qml/images/sfiscale.svg
    qml/images/shadow.svg
    qml/images/spinner-bg.svg
    qml/images/spinner-select.png
    qml/images/stripes.svg
    @

    I am attempting to add the *Screen orientation detection for QML * from
    Chris' Blog - cdumez.blogspot.com/2010/12/screen-orientation-detection-for-qml.html

    The result is errors that indicate QtMobility is not in the namespace even though I have used the QTM_USE_NAMESPACE macro and mobility global header.

    Here are the errors from QtCreator:

    @
    ../SolStats/orientation.cpp:3:1: error: ‘QtMobility’ is not a namespace-name
    ../SolStats/orientation.cpp:3:1: error: expected namespace-name before ‘;’ token
    ../SolStats/orientation.cpp: In constructor ‘Orientation::Orientation(QObject*)’:
    ../SolStats/orientation.cpp:10:18: error: expected type-specifier before ‘QOrientationSensor’
    ../SolStats/orientation.cpp:10:18: error: cannot convert ‘int*’ to ‘QtMobility::QOrientationSensor*’ in assignment
    ../SolStats/orientation.cpp:10:18: error: expected ‘;’ before ‘QOrientationSensor’
    ../SolStats/orientation.cpp:11:71: error: no matching function for call to ‘Orientation::connect(QtMobility::QOrientationSensor*&, const char [18], const char [20])’
    ../../../QtSDK/Simulator/Qt/gcc/include/QtCore/qobject.h:198:17: note: candidates are: static bool QObject::connect(const QObject*, const char*, const QObject*, const char*, Qt::ConnectionType)
    ../../../QtSDK/Simulator/Qt/gcc/include/QtCore/qobject.h:313:13: note: bool QObject::connect(const QObject*, const char*, const char*, Qt::ConnectionType) const
    ../SolStats/orientation.cpp:12:11: error: invalid use of incomplete type ‘struct QtMobility::QOrientationSensor’
    ../SolStats/orientation.h:7:7: error: forward declaration of ‘struct QtMobility::QOrientationSensor’
    ../SolStats/orientation.cpp: In destructor ‘virtual Orientation::~Orientation()’:
    ../SolStats/orientation.cpp:16:10: warning: possible problem detected in invocation of delete operator:
    ../SolStats/orientation.cpp:16:10: warning: invalid use of incomplete type ‘struct QtMobility::QOrientationSensor’
    ../SolStats/orientation.h:7:7: warning: forward declaration of ‘struct QtMobility::QOrientationSensor’
    ../SolStats/orientation.cpp:16:10: note: neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined.
    ../SolStats/orientation.cpp: In member function ‘void Orientation::onReadingChanged()’:
    ../SolStats/orientation.cpp:21:3: error: ‘QOrientationReading’ was not declared in this scope
    ../SolStats/orientation.cpp:21:24: error: ‘reading’ was not declared in this scope
    ../SolStats/orientation.cpp:21:42: error: invalid use of incomplete type ‘struct QtMobility::QOrientationSensor’
    ../SolStats/orientation.h:7:7: error: forward declaration of ‘struct QtMobility::QOrientationSensor’
    ../SolStats/orientation.cpp:24:8: error: ‘QOrientationReading’ is not a class or namespace
    ../SolStats/orientation.cpp:28:8: error: ‘QOrientationReading’ is not a class or namespace
    ../SolStats/orientation.cpp:32:8: error: ‘QOrientationReading’ is not a class or namespace
    ../SolStats/orientation.cpp:36:8: error: ‘QOrientationReading’ is not a class or namespace
    @

    Mobility libs are in the path of the project.
    Can someone point me in the right direction?

    Environment is:
    Ubuntu 11.04
    KERNEL 2.6.38.10-generic
    GNOME 2.32.1

    latest update of Qt SDK 1.2 as of 14 July 2011

    P.S. same results with WinXP QtSDK as well.

    Ken AD5XJ

    1 Reply Last reply
    0
    • C Offline
      C Offline
      cpscotti
      wrote on last edited by
      #2

      Hey ad5xj,
      your .pro file looks fine (as in, looks like the one I use and works).

      In Ubuntu, are you using the Remote compiler for symbian?

      How did you install QtMobility? Following this:
      https://projects.developer.nokia.com/QtM12bSymb/wiki/InstallationGuide ?

      I'd say your problem is either on the sdk/mobilit installation or on your actual code.

      cpscotti.com/blog/ - Used when I need to kill some time at work :D

      1 Reply Last reply
      0
      • A Offline
        A Offline
        ad5xj
        wrote on last edited by
        #3

        The QtMobility module was installed by the SDK maintainer. I did not install it manually either on Linux or WinXP.

        I can find no reason - code wise - why I should be getting this error.

        The QTM_USE_NAMESPACE macro should resolve this kind of thing but it does not.

        On Linux I do not use the remote compiler. I used the gcc compiler for the simulator which should work. On WinXP I use mingw.

        Ken AD5XJ

        1 Reply Last reply
        0
        • C Offline
          C Offline
          cpscotti
          wrote on last edited by
          #4

          Ah ok. Yes, it should work fine on the simulator.
          Are your orientation.[cpp,h] the same from the ones in the chris's blog post? There he's not using QTM_USE_NAMESPACE because he's explicitly using "QtMobility::"
          The QTM_USE_NAMESPACE macro is only defined as "using namespace QtMobility;"

          cpscotti.com/blog/ - Used when I need to kill some time at work :D

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

            Found the problem.

            #include <QOrientationSensor>
            #include <orientation.h>

            have to come before the QTM_USE_NAMESPACE macro to work. Thanks for the help everyone.

            Ken AD5XJ

            1 Reply Last reply
            0
            • A Offline
              A Offline
              ad5xj
              wrote on last edited by
              #6

              Well it looks like I spoke too soon. Now the compiler indicates the macro does not name a type:

              @
              ..\SolStats\orientation.cpp:1:30: error: QOrientationSensor: No such file or directory
              ..\SolStats\orientation.cpp:3: error: 'QTM_USE_NAMESPACE' does not name a type
              ..\SolStats\orientation.cpp: In destructor 'virtual Orientation::~Orientation()':
              ..\SolStats\orientation.cpp:14: warning: possible problem detected in invocation of delete operator:
              ..\SolStats\orientation.cpp:14: warning: invalid use of incomplete type 'struct QtMobility::QOrientationSensor'
              ..\SolStats/orientation.h:7: warning: forward declaration of 'struct QtMobility::QOrientationSensor'
              ..\SolStats\orientation.cpp:14: note: neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined.
              ..\SolStats\orientation.cpp: In member function 'void Orientation::onReadingChanged()':
              ..\SolStats\orientation.cpp:19: error: 'QOrientationReading' was not declared in this scope
              ..\SolStats\orientation.cpp:19: error: 'reading' was not declared in this scope
              ..\SolStats\orientation.cpp:19: error: invalid use of incomplete type 'struct QtMobility::QOrientationSensor'
              ..\SolStats/orientation.h:7: error: forward declaration of 'struct QtMobility::QOrientationSensor'
              ..\SolStats\orientation.cpp:22: error: 'QOrientationReading' is not a class or namespace
              ..\SolStats\orientation.cpp:26: error: 'QOrientationReading' is not a class or namespace
              ..\SolStats\orientation.cpp:30: error: 'QOrientationReading' is not a class or namespace
              ..\SolStats\orientation.cpp:34: error: 'QOrientationReading' is not a class or namespace
              mingw32-make[1]: Leaving directory `C:/Projects/Mobile/SolStats-build-desktop'
              mingw32-make[1]: *** [debug/orientation.o] Error 1
              @

              Ken AD5XJ

              1 Reply Last reply
              0
              • C Offline
                C Offline
                cpscotti
                wrote on last edited by
                #7

                Are you including qmobilityglobal.h ?

                #include <qmobilityglobal.h>

                should solve your problem :D

                cpscotti.com/blog/ - Used when I need to kill some time at work :D

                1 Reply Last reply
                0
                • A Offline
                  A Offline
                  ad5xj
                  wrote on last edited by
                  #8

                  Yes. I have included the Mobility global header in the orientation.cpp module. That avoids the QOrientationReading errors above. I just had a typo. (sorry)

                  For some reason, no matter what I do QML is not recognising the new module.

                  using Chris's method:
                  main.cpp
                  context->setContextProperty("Orientation", new Orientation(&app;));
                  I get this error:
                  ReferenceError: Can't find variable: Orientation

                  If I do it a different way:
                  orientation.h
                  Q_DECLARATIVE_EXPORT class Orientation : public QObject
                  {}

                  main.cpp:
                  qmlRegisterType<Orientation>("Orientation", 1, 0, "Orientation");

                  main.qml:
                  import Orientation 1.0;

                  I only get this error:
                  module "Orientation" is not installed

                  Frustrating!
                  I am missing something but I cannot for the life of me figure what it is.


                  Well using both Linux and WinXP installations helps.

                  When I booted into windows and ran the same code, I got this error:
                  ReferenceError: Can't find variable: Orientation
                  QSensorPluginLoader: Failed to load plugin
                  Reason: o == 0
                  Plugin: "C:/QtSDK/Simulator/Qt/mingw/plugins/sensors/qtsensors_genericd0.dll"
                  Error: "The plugin 'C:/QtSDK/Simulator/Qt/mingw/plugins/sensors/qtsensors_genericd0.dll' uses incompatible Qt library. Expected build key "Windows mingw release full-config", got "Windows mingw debug full-config""
                  QSensorPluginLoader: Failed to load plugin
                  Reason: o == 0
                  Plugin: "C:/QtSDK/Simulator/Qt/mingw/plugins/sensors qtsensors_simulatord1.dll"
                  Error: "The plugin 'C:/QtSDK/Simulator/Qt/mingw/plugins/sensors/qtsensors_simulatord1.dll' uses incompatible Qt library. Expected build key "Windows mingw release full-config", got "Windows mingw debug full-config""
                  loaded the Generic plugin

                  I am running in release mode so this does not make sense. Maybe the makespecs do not point to the right plugin?

                  Ken AD5XJ

                  1 Reply Last reply
                  0
                  • I Offline
                    I Offline
                    ilkka
                    wrote on last edited by
                    #9

                    [quote author="ad5xj" date="1310745728"]
                    When I booted into windows and ran the same code, I got this error:
                    ReferenceError: Can't find variable: Orientation
                    QSensorPluginLoader: Failed to load plugin
                    Reason: o == 0
                    Plugin: "C:/QtSDK/Simulator/Qt/mingw/plugins/sensors/qtsensors_genericd0.dll"
                    Error: "The plugin 'C:/QtSDK/Simulator/Qt/mingw/plugins/sensors/qtsensors_genericd0.dll' uses incompatible Qt library. Expected build key "Windows mingw release full-config", got "Windows mingw debug full-config""
                    QSensorPluginLoader: Failed to load plugin
                    Reason: o == 0
                    Plugin: "C:/QtSDK/Simulator/Qt/mingw/plugins/sensors qtsensors_simulatord1.dll"
                    Error: "The plugin 'C:/QtSDK/Simulator/Qt/mingw/plugins/sensors/qtsensors_simulatord1.dll' uses incompatible Qt library. Expected build key "Windows mingw release full-config", got "Windows mingw debug full-config""
                    loaded the Generic plugin

                    I am running in release mode so this does not make sense. Maybe the makespecs do not point to the right plugin?
                    [/quote]

                    I just noticed this same problem, latest Qt SDK on Win7. Even more bizarrely, running in debug mode I get a similar error message, but then it tries to load the release version of the sensors plugin.

                    1 Reply Last reply
                    0
                    • I Offline
                      I Offline
                      ilkka
                      wrote on last edited by
                      #10

                      dur, my app still finds a buncha sensors, so it is working. Maybe it just tries to load all the plugins and complains about the incompatible one.

                      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