因为加载第三方.so库时候总是出问题,我在自己的studio下配置了NDK环境来了解下NDK编码的整个过程。
1.首先安装NDK:file>Project Structure>SDK Location 在页面中有install NDK的提示选项,点击安装就好了,装好后如下图所示:
2.新建一个项目hello,编写代码如下:
3.rebuild project 在Project 模式下可以看到
4.打开Terminal输入指令:cd hello\build\intermediates\classes\debug
再输入指令javah -d jni -classpath D:\Android\sdk\platforms\android-15\android.jar; com.hello.hello.HelloActivity
然后就看到有头文件出现了(在Project模式下看),命令中-classpath是因为我没有配置该环境变量就要在这里设置了,不然会报不存在之类的错误。在src下新建jni文件夹将头文件剪切放入src/jni下。
5.在jni下新建hello.cpp实现头文件中的函数
6.jni 下新建 android.mk编写内容如下
7.build一下工程,有错误显示
根据提示,然后就去找到gradle.properties文件在最后添加
8.找到Hello下面的build.gradle,在defaultConfig下添加
ndk{ moduleName "libhello" //生成.so文件的名字 abiFilters "armeabi", "armeabi-v7a", "x86" //为了适配不同abi所生成的三种库 }
重新build项目就会发现在HelloActivity中的本地方法已经不是红名了。运行项目
到此结束!
本文参考:1.http://www.codeceo.com/article/android-studio-ndk-jni.html
2.http://www.open-open.com/lib/view/open1425962345263.html
3.http://blog.csdn.net/jiuyueguang/article/details/9447245