0

私はqtアンドロイド5.1.1を使用しています

センサーをプロファイルに追加しても問題があります。

コメントありがとうございます。私の問題は次のとおりです。

../sensor_test/mainwindow.cpp:9: エラー: 'QAccelerometer::QAccelerometer(QObject*)' への未定義の参照 ../sensor_test/mainwindow.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/mainwindow.cpp:22: エラー: 'QSensor::~QSensor()' への未定義の参照 ../sensor_test/mainwindow.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>());
}
4

1 に答える 1

1

これは、QtSensors を Qt 4 のように、つまり Qt Mobility 時代から使用しようとしているためです。また、QtCreator はそのようなものを生成するはずがないため、生成時に何か問題が発生したと確信しています。以下の修正を参照してください。

次の 2 行を置き換える必要があります。

CONFIG += mobility
MOBILITY += sensors

と:

QT += sensors

少しトピックから外れていますが、次の行も削除する必要があります。これらの 2 つのモジュールは、ここで使用されている Qt 5 と同様に、デフォルトで Qt 4 に暗黙的に追加されているためです。

QT       += core gui

ここで、私にとっては問題なく機能する短いスニペットを見つけることができます。

main.cpp

int main()
{
    QSensor sensor("QAccelerometer");
    sensor.start();
}

main.pro

TARGET = sensor_test
TEMPLATE = app

QT += sensors

SOURCES += \
    main.cpp

qmake と nmake が PATH にあることを確認してから、次のコマンドを実行します。

qmake && nmake

于 2013-09-06T08:27:40.930 に答える