V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
SusieMe
V2EX  ›  Android

Android studio 如何生成多个.so 文件

  •  
  •   SusieMe · 2016-01-25 17:51:49 +08:00 · 14761 次点击
    这是一个创建于 3225 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我很认真的在提问:
    之前都是在 eclipse 上进行安卓应用开发,后面想转到 android studio 上进行,遇到如下问题:
    我在 eclipse 上使用 ndk 开发了多个 so 库文件,使用的是自己的 Android.mk 文件,
    转到 android studio 后发现 Android.mk 文件是指定 ndk 后编译自动生成的,那么如何在 studio 上能像 eclipse 那样生成多个库?

    12 条回复    2016-06-29 15:39:30 +08:00
    messnoTrace
        1
    messnoTrace  
       2016-01-25 18:08:42 +08:00
    那库不是在 mk 里面自己配置的么,
    需要什么架构就配什么架构,我记得是这样的,你把 eclipse 下的 mk 拿到 as 中,可以试试,,不负责。。
    SusieMe
        2
    SusieMe  
    OP
       2016-01-26 08:24:50 +08:00
    @messnoTrace 这样没用╭(╯^╰)╮
    lee015
        3
    lee015  
       2016-01-26 09:32:57 +08:00 via Android
    可以在 app 的 build 脚本中把 jni.srcDirs = [],它就不会自动编译了,然后用在 external tool 里添加 NDK build 和 Javah ,手动编译,就是用的你自己的 mk 文件了。
    SusieMe
        4
    SusieMe  
    OP
       2016-01-26 13:08:01 +08:00
    @lee015 不懂额~ external tool 在哪儿没找到,能描述详细点不啦~
    lingdududu
        5
    lingdududu  
       2016-01-27 10:30:47 +08:00
    题主,建议你看看这篇教程: http://blog.csdn.net/qiujuer/article/details/42040963

    Android Studio 需要在 build.gradle 里面配置的
    SusieMe
        6
    SusieMe  
    OP
       2016-01-27 15:55:52 +08:00
    @lingdududu 这个教程我已经看过了,试了在 build.gradle 里加 ndk 块的方法,可是这种方式只能编译出一个 so 文件,况且我需要 gradle 根据我的 Android.mk 去编译 so 文件,不用这种加 ndk 块的方式去编译。
    messnoTrace
        7
    messnoTrace  
       2016-01-28 17:18:38 +08:00
    @SusieMe 那为啥我的就能编译的出多个,,
    SusieMe
        8
    SusieMe  
    OP
       2016-01-28 18:07:42 +08:00
    已找到解决办法,可以在项目的 build.gradle 中输入命令来编译在 eclipse 中使用的 Android.mk 文件,在 Android.mk 文件里可以定义生成的 so 文件的个数。谢谢各位啦!\(^o^)/
    SusieMe
        9
    SusieMe  
    OP
       2016-01-28 18:09:41 +08:00
    @messnoTrace 不知道,我直接把 Android.mk 放在 jni 目录下, as 并不编译
    messnoTrace
        10
    messnoTrace  
       2016-01-28 18:15:23 +08:00
    @SusieMe 你需要在 gradle 中配置啊,或者就是./gradlew xxx 了,
    drivedreams
        11
    drivedreams  
       2016-04-05 19:43:44 +08:00 via iPhone
    你已经解决了吗 能说说怎么解决的吗,我也遇到这个问题
    alqaz
        12
    alqaz  
       2016-06-29 15:39:30 +08:00
    添加一个 module,悬着 Andriod Library,然后每一个 Library 就可以生成一个 so
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2687 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 03:10 · PVG 11:10 · LAX 19:10 · JFK 22:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.