android - Android NDK 未定义对 ASensorEventQueue_registerSensor 的引用
问题描述
我尝试通过 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
顺便说一句,我可以在包含的头文件中看到该函数,所以这应该不是问题。有谁知道如何解决这个问题?
解决方案
一种可能性是您缺少一个find_library
for liblog 和 libandroid。在之前添加以下内容target_link_libraries
:
find_library(android android)
find_library(log log)
但是我不确定这是否需要。
另一种可能性是您的minSdkVersion
年龄低于 26。直到 O 才添加,因此除非您的年龄至少为 26,ASensorEventQueue_registerSensor
否则无法链接。minSdkVersion
推荐阅读
- optimization - 带有 MOSEK 求解器的 CVXPY:如何找到与 Mosek“索引”对应的约束?
- php - PHP csv下载与服务器上的文件副本不同
- spring-webflux - 如何使代码更具反应性;删除 if,检查是否为空并进行中间记录
- python - 如何用熊猫替换数据框中的部分标签?
- python - Python - 如何修复字符串拆分?
- java - 启用 SSL 的连接器不断出现在 server.xml 中
- c# - C# 非静态字段、方法或属性“variables.rhifAnfoneb”需要对象引用
- java - 复合一次性接收到的远程数据,但未从 callback.onResult 进入存储库
- sql - 匹配两个SQL数据库中不同类型的两个值
- javascript - 控制 Netscaler 图像延迟加载