首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在本机android库中使用native运行时

如何在本机android库中使用native运行时
EN

Stack Overflow用户
提问于 2022-04-07 07:45:36
回答 1查看 318关注 0票数 1

我需要在Android项目中使用from运行时库,但我不知道如何配置CMake,使其能够使用来自AAR的C++头和*.so。我创建了一个新的Android模块,并将onnxruntime-mobile-1.11.0.aar放入libs中,但是在我的C++代码中,我遇到了一个错误:

在/Users/ash/AndroidStudioProjects/cv-demo/android/src/nativelib/src/main/cpp/OrtInferenceSession.cpp:8: /Users/ash/AndroidStudioProjects/cv-demo/android/src/nativelib/src/main/cpp/OrtInferenceSession.hpp:20:10:致命错误包含的文件中:“onnxruntime_cxx_api.h”文件未找到

我看到我需要的文件都是用AAR包装的:

如何在onnxruntime-mobile-1.11.0.aar中指定headers、和*.so的路径,以便在C++代码中使用它们?

EN

回答 1

Stack Overflow用户

发布于 2022-10-03 12:52:37

我提取了libonnxruntime.so (不需要jni内容)和标题,并将它们放在src/旁边的一个新的libs/文件夹中。因此:

代码语言:javascript
复制
libs
└── onnxruntime
    ├── include
    │   ├── cpu_provider_factory.h
    │   ├── nnapi_provider_factory.h
    │   ├── onnxruntime_c_api.h
    │   ├── onnxruntime_cxx_api.h
    │   └── onnxruntime_cxx_inline.h
    └── lib
        ├── arm64-v8a
        │   └── libonnxruntime.so
        ├── armeabi-v7a
        │   └── libonnxruntime.so
        ├── x86
        │   └── libonnxruntime.so
        └── x86_64
            └── libonnxruntime.so

然后,我在CMakeList.txt中添加了这个库来链接库:

代码语言:javascript
复制
set(LIBS_DIR ${CMAKE_SOURCE_DIR}/../../../libs)

add_library(onnxruntime SHARED IMPORTED)
set_target_properties(
        onnxruntime
        PROPERTIES
        IMPORTED_LOCATION ${LIBS_DIR}/onnxruntime/lib/${ANDROID_ABI}/libonnxruntime.so
        INTERFACE_INCLUDE_DIRECTORIES ${LIBS_DIR}/onnxruntime/include
)

最后,在gradle插件版本大于4.0的情况下,您必须在android部分的build.gradle中添加这些行

代码语言:javascript
复制
packagingOptions {
    jniLibs {
        pickFirsts += ['**']
    }
}

正式文件

如果您正在使用Android插件4.0,请将导入的CMake目标使用的任何库移出您的jniLibs目录以避免此错误。

但在我的情况下,这还不够,还必须添加gradle配置以避免臭名昭著的2 files found with path 'lib/arm64-v8a/libonnxruntime.so' from inputs:错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71778195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档