本系列是分为三步走
1.生成so库文件(本篇)
2.生成jar包 打开地址
3.调用自己生成的so库和jar包 打开地址
本篇是第一部分,生成so库.
一、配置NDK环境
1.下载NDK文件 http://www.androiddevtools.cn/ android中文网下载
2.配置NDK的环境变量 (如果有的环境变量配置好了,但是DOS命令行还显示不是系统命令{如:Java,javac,javah},就把系统path中的复制一份到用户环境path中去)
将ndk路径放到path里去,然后打开cmd,输入ndk-build ,提示下图就说明配置成功!
二、配置Android studio
1.新建一个名为JniMakeSo的Android项目。
2.配置NDK路径
3.配置build.gradle
ndk{
moduleName "hello"
ldLibs "log","z","m"
abiFilters "armeabi","armeabi-v7a","x86","arm64-v8a"
}
4.配置gradle.properties:加一行 android.useDeprecatedNdk = true
三、生成so库文件
1.创建Testjni.java
/**
* Created by Rango on 2018/5/12.
*/
public class Testjni {
static {
System.loadLibrary("hello");//名字要与build.gradle文件中配置一致
}
public native static String getString();
}
2.在build文件夹下找到classes文件夹(如果没有classes文件夹先 Build->Make Project一下或run一下)
3.打开DOS命令行(快捷键 window键+R,输入cmd)或在Android studio里点击Terminal.
3.1: cd 到classes下的debug目录下然后输入javah -jni 包名.类名
*打开小技巧:可以先打开到这个文件夹下,按住shift键右击debug文件夹,再点击在此处打开命令行,就会很方便的自动切到此目录下。
3.2:然后输入javah -jni 包名.类名 按回车,如果没有任何提示就说明.h文件生成成功了
3.3:这时候就可以看到.h文件了
3.4:在java同级目录创建jni文件夹,把生成的.h文件copy进去。
并创建test.cpp文件,把.h文件中的方法copy进去实现。*需要引入.h头文件
3.5:这时候Rebuild Project或者run一下项目就会生成四个so文件了.(因为在build.gradle里面设置了四种体系结构)
如果出现如下图错误,说明此文件夹正在使用不能删除,把刚刚的cmd命令窗口关闭重新Rebuild一下就好了