为什么使用Cmake编译出来的So只有arm64-v8a架构

问题

为何在使用Cmake编译JNI文件的时候,运行的时候,只会生成arm64-v8a架构的So打入Apk中,而并不会生成所有架构,如x86mips等。

只有arm64-v8a架构的so

但是在make Module的时候,却会生成所有架构的So。

所有架构的so

环境

  • Cmakelists.txt中添加如下代码,设置链接库的输出路径:
# 设置Library的输出路径
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/jniLibs/${ANDROID_ABI})
  • Cmake版本 3.6.0-rc2
  • Gradle Wrapper版本 5.1.1
  • Gradle版本 3.4.0-rc02

测试

如果是先Make Module,生成出来各个架构的So,然后再Run App,则能把So打进Apk中。

先Make,再Run

如果直接Run App,则只有arm64-v8a架构的so

直接Run

原因

待解决...

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券