手把手教你搭建Android Studio的NDK开发环境

作者: Louis_陆 | 来源:发表于2016-07-14 15:30 被阅读5132次

    首先,在 Project Structure 中配置好 SDK、JDK、NDK 路径
    值得注意的是,NDK 版本应用 r10d 及以上版本,笔者测试过使用 r9d 版本,出现了众多的 bug 及相关问题如 jni 头文件找不到(这是由于编译的版本是5.0及以上而 NDK 版本过低造成的),所以建议使用新版

    Paste_Image.png

    假设我在包 www.exchange.com.mylibrary 下建立了一个类 NdkString ,并写了一个本地方法,如图所示:

    打开cmd,输入以下命令生成.h头文件

    【1】进入目录:cd C:\Users\ASUS\AndroidStudioProjects\TestSkill\mylibrary
    【2】为 NdtString 类生成 jni 目录及.h文件:javah -d jni -classpath ..\..\build\intermediates\classes\debug www.exchange.com.library.NdkString
    
    Paste_Image.png

    如上图,没有任何报错,即生成.h头文件成功,可在IDE中找到如下文件
    如果此处报错找不到类,优先检查有没有输错路径,如没错,则rebuild 下 project,关闭 cmd,再重新执行命令即可

    Paste_Image.png

    可见文件中申明了 getFromC 方法

    下面新建一个 Hello.c 文件,导入头文件,并实现 getFromC 方法

    Paste_Image.png

    右键项目,点击 Make Module 'mylibrary' 编译项目


    Paste_Image.png

    会得到如下编译错误


    Paste_Image.png

    产生错误的原因,是** Android Stuido 不允许 NDK 开发中只存在单独一个 .c文件**,所以解决方法是生成一个空的 Hello1.c 文件,再次编译即可

    Paste_Image.png

    可在路径 \mylibrary\build\intermediates\ndk\debug\lib 中查看.so文件


    Paste_Image.png

    接下来,我们在任意一个 module 中,添加 mylibrary 依赖进行测试
    笔者这里选用 app module,添加 Module dependency


    Paste_Image.png

    在 NdkString 类中,加载 .so文件


    Paste_Image.png

    最后编写测试类即可,此处笔者就不粘贴效果图了


    Paste_Image.png

    最后,笔者在百度云中,给出 AndroidNDKR10D 的下载链接,有需要的读者自行下载。

    相关文章

      网友评论

        本文标题:手把手教你搭建Android Studio的NDK开发环境

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