前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为什么使用Cmake编译出来的So只有arm64-v8a架构

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

作者头像
None_Ling
发布2019-04-18 15:57:45
3.4K1
发布2019-04-18 15:57:45
举报
文章被收录于专栏:Android相关Android相关

问题

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

只有arm64-v8a架构的so

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

所有架构的so

环境

  • Cmakelists.txt中添加如下代码,设置链接库的输出路径:
代码语言:javascript
复制
# 设置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

原因

待解决...

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.04.11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题
  • 环境
  • 测试
  • 原因
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档