开发者社区> 问答> 正文

阿里语音AI中这两个aar有什么区别吗,上面文件夹里so文件也需要导入吗?

我这边项目是c++的,用移动端sdk,我需要用c++调用java,有点麻烦,想问一下我去下了移动端sdk,有aar包,也有.so文件,我是只需要导入aar就行了吧,,这两个aar有什么区别吗,上面文件夹里.so文件也需要导入吗3b9ce436a8a58aae4ed8184cc7e1341d.png

展开
收起
乐天香橙派 2023-11-20 21:14:57 91 0
3 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    通常,aar 包是一种 Android 库文件,其中包含了 jar 文件、资源文件、原生库 (.so 文件)和其他文件。如果您在 C++ 中调用 Java,您应该只需要使用 .so 文件,而不必直接导入 aar 包。这是因为 C++ 只能调用原生库 (.so 文件),而不是 Java 库 (.jar 文件)。
    如果您需要使用 aar 包中的 Java 功能,则应该在 Android Studio 中将其引入项目,并创建 JNI 接口以供 C++ 调用。接下来,您可以使用 NDK 将 C++ 程序和 Android 库结合在一起。在这个过程中,您不需要导入整个 aar 包,只需要使用其中的 .so 文件即可。
    如果您有多个 .so 文件,您可以将它们放在同一个文件夹中,并且在 CMakeLists.txt 文件中指定它们的位置。这样,NDK 就可以找到这些文件,并将它们链接到您的 C++ 应用程序中。

    2023-11-29 16:44:15
    赞同 展开评论 打赏
  • 用下面这个 只有第二个aar,不需要so—此回答来自钉群“阿里语音AI【6群】”

    2023-11-21 18:41:04
    赞同 展开评论 打赏
  • 在Android开发中,.aar和.so文件都是常见的第三方库。其中,.aar文件其实是一个压缩包,它包含了一个项目或者一个module的所有内容,如图片、布局、类、.so等。当其他项目引入这个.aar后,可以直接使用其中的资源。而.so文件通常是C或C++语言的内容打包成的库。

    对于您的需求,如果您的项目是C++并需要调用Java代码,那么您应该主要关注.aar文件。您可以将.aar文件导入到您的项目中,这样您的C++代码就可以直接调用Java代码了。至于.so文件,由于您的项目主要是java语言,所以它可能不会直接相关。但是,如果aar文件中使用了C或C++编写的库,并且这些库是通过.so文件提供的,那么您可能需要确保.so文件也被正确地包含和配置在项目中。

    2023-11-21 16:41:18
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Data+AI时代大数据平台应该如何建设 立即下载
大数据AI一体化的解读 立即下载
当搜索遇见AI 立即下载