Android NDK неопределенная ссылка на ASensorEventQueue_registerSensor - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь зарегистрировать датчик через NDK, и он работает, пока я не попытаюсь использовать ASensorEventQueue_registerSensor.Я делаю это, как в следующем коде:

#include <android/sensor.h>
[...]
auto status = ASensorEventQueue_registerSensor(accelerometerEventQueue, accelerometer, SENSOR_REFRESH_PERIOD_US,SENSOR_BATCH_REPORT_TIME);
[...]

Мой CMakeLists.txt выглядит как

cmake_minimum_required(VERSION 3.4.1)

add_library( # Sets the name of the library.
             native-lib

             # Sets the library as a shared library.
             SHARED

             # Provides a relative path to your source file(s).
             src/main/cpp/native-lib.cpp )


target_link_libraries( # Specifies the target library.
                       native-lib
                       android
                       log)

Я могу использовать функции, такие как ASensorEventQueue_enableSensor или ASensorEventQueue_setEventRate, но я не могузапускать приложение при использовании ASensorEventQueue_registerSensor из-за неопределенной ошибки ссылки.

Кстати, я вижу функцию во включенном заголовочном файле, так что это не должно быть проблемой.У кого-нибудь есть идеи, как решить эту проблему?

1 Ответ

0 голосов
/ 04 октября 2018

Возможно, вам не хватает find_library для liblog и libandroid.Добавьте следующее перед target_link_libraries:

find_library(android android)
find_library(log log)

Однако я не уверен, что это необходимо.

Другая возможность состоит в том, что ваш minSdkVersion ниже, чем 26. ASensorEventQueue_registerSensor былне добавляется до O, поэтому его нельзя связать, если ваш minSdkVersion не меньше 26.

...