我正在尝试构建一个 Android 应用。
com.intel.realsense.librealsense.FrameSet
)。rs2::frameset
作为输入参数,例如int NativeFrameProcessing(rs2::frameset& frames)
。这是通过使用 NDK 实现的。通过查看librealsense示例android程序,android中的帧获取部分似乎很清楚。此外,librealsense 代码还展示了通过将本机指针转换为 jlong
来将帧传递到本机部分。
我不清楚的是如何在 android 部分和 NDK(本机代码)部分指定 librealsense 依赖项。
在android中,依赖被指定为:
repositories {
maven{
url "https://dl.bintray.com/intel-realsense/librealsense-dev"
}
}
dependencies {
implementation 'com.intel.realsense:librealsense:2.41.0+@aar'
}
在 NDK(原生代码部分)中,我使用 CMake 生成编译配置。
find_package(realsense2 REQUIRED)
但我猜这样的话,CMake 会找到当前系统中安装的 librealsense(在这种情况下是 Ubuntu,因为我在 Ubuntu 中做项目),它不是针对 android 设备构建的,并且版本可能与下载的AAR android库不一致。
那么如何正确指定对 librealsense 的依赖?例如,指向 CMake 以某种方式使用下载的 AAR 库,因此 android 部分和 NDK 部分都依赖于相同的 librealsense ?提前致谢!
答案 0 :(得分:0)
根据 Android documentation,AAR 已经包含原生程序集 -
这意味着,您不需要构建它并且您可以删除 CMake 支持。
如果您想自己构建 AAR,只需按照 build instructions 操作即可。
如果出于某种原因,您可能想直接链接 realsense2.so
,您可以通过解压缩从 AAR 中简单地提取它 - 或者自己构建 AAR 并从输出中获取它。>
工具链绝对不会关心主机系统上安装的程序集 - 即使两者都可能产生 x86_64
程序集,它们也会链接到不同的库,因此不兼容且不可互换。