Apk 在库中不包含 arm64-v8a 文件夹,但我的项目在 jnilibs/arm64-v8a/xyz.so 下有 .so 文件

Apk does not include arm64-v8a folder in libs but my project has .so file under jnilibs/arm64-v8a/xyz.so

我的项目需要本机库,我已经为 'x86'、'x86_64'、'armeabi-v7a'、'arm64_v8a' 架构生成了 .so 文件。

在应用程序 gradle 中,我还为以下内容定义了 ndk 支持 ndk.abiFilters 'x86', 'x86_64', 'armeabi-v7a', 'arm64_v8a'

但是当我使用 android studio 生成一个 apk 并使用 "Analyze apk" 工具分析它时,它只显示 lib 目录中的 3 个文件夹 x86, x86_64,以及 armeabi-v7a

它不会创建 "arm64_v8a" 文件夹以完全支持 64 位设备。

仔细阅读你写的内容我怀疑问题的根源可能在你项目的应用程序级别 build.gradle 文件中找到:

  • 我假设您的 build.gradle 文件包含一个 abi 过滤器标签,其中包含所需的架构名称,'arm64_v8a' 其中。

  • 但此架构的正确官方名称是 'arm64-v8a'

  • 如果我是对的,你应该把架构名称从'arm64_v8a'改成'arm64-v8a',问题就解决了(我最近也有同样的错误,在我之后用官方名称更正了 abi 过滤器,错误消息消失了:)