美文网首页
为什么使用Cmake编译出来的So只有arm64-v8a架构

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

作者: None_Ling | 来源:发表于2019-04-11 11:53 被阅读0次

    问题

    为何在使用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

    原因

    待解决...

    相关文章

      网友评论

          本文标题:为什么使用Cmake编译出来的So只有arm64-v8a架构

          本文链接:https://www.haomeiwen.com/subject/fottwqtx.html