Android qt传感器上的未定义参考

Android qt传感器上的未定义参考,android,c++,qt,mobile,Android,C++,Qt,Mobile,我正在使用QtAndroid 5.1.1 我有问题,甚至我添加传感器到专业文件什么是问题 谢谢你的评论。 我的问题是: 。/sensor\u test/main window.cpp:9:错误:未定义对“QAccelerometer::QAccelerometer(QObject*)”的引用 ../sensor_test/main window.cpp:19:错误:未定义对“QSensor::QSensor(QByteArray const&,QObject*)”的引用 ../sensor_te

我正在使用QtAndroid 5.1.1

我有问题,甚至我添加传感器到专业文件什么是问题

谢谢你的评论。 我的问题是:

。/sensor\u test/main window.cpp:9:错误:未定义对“QAccelerometer::QAccelerometer(QObject*)”的引用 ../sensor_test/main window.cpp:19:错误:未定义对“QSensor::QSensor(QByteArray const&,QObject*)”的引用 ../sensor_test/mainwindow.cpp:20:错误:未定义对“QSensor::start()的引用” ../sensor_test/mainwindow.cpp:21:错误:未定义对“QSensor::reading()const”的引用 Makefile:146:目标'libsensor_test.so'的配方失败 ../sensor_test/main window.cpp:22:错误:未定义对“QSensor::~QSensor()”的引用 ../sensor_test/main window.cpp:22:错误:未定义对“QSensor::~QSensor()”的引用 collect2.exe:错误:ld返回1个退出状态

我的专业文件:

#-------------------------------------------------
#
# Project created by QtCreator 2013-08-30T14:44:53
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = sensor_test
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui

CONFIG += mobility
MOBILITY += sensors

OTHER_FILES += \
    android/AndroidManifest.xml \
    android/res/layout/splash.xml \
    android/res/values/libs.xml \
    android/res/values/strings.xml \
    android/res/values-de/strings.xml \
    android/res/values-el/strings.xml \
    android/res/values-es/strings.xml \
    android/res/values-et/strings.xml \
    android/res/values-fa/strings.xml \
    android/res/values-fr/strings.xml \
    android/res/values-id/strings.xml \
    android/res/values-it/strings.xml \
    android/res/values-ja/strings.xml \
    android/res/values-ms/strings.xml \
    android/res/values-nb/strings.xml \
    android/res/values-nl/strings.xml \
    android/res/values-pl/strings.xml \
    android/res/values-pt-rBR/strings.xml \
    android/res/values-ro/strings.xml \
    android/res/values-rs/strings.xml \
    android/res/values-ru/strings.xml \
    android/res/values-zh-rCN/strings.xml \
    android/res/values-zh-rTW/strings.xml \
    android/src/org/kde/necessitas/ministro/IMinistro.aidl \
    android/src/org/kde/necessitas/ministro/IMinistroCallback.aidl \
    android/src/org/qtproject/qt5/android/bindings/QtActivity.java \
    android/src/org/qtproject/qt5/android/bindings/QtApplication.java \
    android/version.xml
我的代码是:

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    ac=new QAccelerometer(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    QSensor sensor("QAccelerometer");
    sensor.start();
    QSensorReading *read=sensor.reading();
    ui->lineEdit->setText(read->property("x").value<QString>());
}
#包括“mainwindow.h”
#包括“ui_main window.h”
主窗口::主窗口(QWidget*父窗口):
QMainWindow(父级),
用户界面(新用户界面::主窗口)
{
用户界面->设置用户界面(此);
ac=新的QAccelerometer(本);
}
MainWindow::~MainWindow()
{
删除用户界面;
}
void主窗口::在按钮上单击()
{
QSensor传感器(“QAccelerometer”);
sensor.start();
QSensorReading*读取=传感器。读取();
ui->lineEdit->setText(读取->属性(“x”).value());
}

这是因为您试图使用QtSensors,就像使用Qt 4一样,即从Qt移动时代开始。另外,我确信这一代人出了问题,因为QtCreator不应该产生这样的东西。请参阅下面的修复程序

您应该替换这两行:

CONFIG += mobility
MOBILITY += sensors
与:

稍微偏离主题,但您也应该删除以下行,因为默认情况下,这两个模块是在Qt4中隐式添加的,在这里使用Qt5

QT       += core gui
在这里,您可以找到一个对我很有用的小片段:

main.cpp main.pro 确保qmake和nmake位于您的路径中,然后运行以下命令:

qmake&&nmake

QT       += core gui
int main()
{
    QSensor sensor("QAccelerometer");
    sensor.start();
}
TARGET = sensor_test
TEMPLATE = app

QT += sensors

SOURCES += \
    main.cpp