www.jianshu.com/p/e689d0196a17
http://www.jianshu.com/p/178a2169b7ff
扩展命令
1、javah

生成jni路径

Paste_Image.png
-classpath $ModuleFileDir$\build\intermediates\classes\debug $FileClass$
$ModuleFileDir$\src\main\jni
使用选中要生成.h的java类(因为参数中用到的$fileClass$),右键

javah
2、ndk-build

Paste_Image.png
$ProjectFileDir$\$ModuleName$\src\main
在项目的任意目录下右键
此时生成的so文件位于

Paste_Image.png
注:可能会报错android.useDeprecatedNdk***的
build.gradle同目录下添加 gradle.properties文件
内容如下
android.useDeprecatedNdk=true
3、so路径问题
so路径与gradle编译文件路径不一致 /项目根目录
jar 文件位于 /libs
so 位于 /src/main/jniLibs
使用2生成的位于/src/main/libs
方案
build.gradle
sourceSets {
main {
jni.srcDirs = []
jniLibs.srcDirs = ['src/main/jniLibs','/src/main/libs'] /*改变jniLibs文件的目录,根目录是相对build.gradle所在目录*/
}
}
4、javac
javah是基于.class文件的,因此要执行javah要先生成.class文件
路径位于

Paste_Image.png
使用javac生成

Paste_Image.png
-encoding $FileEncoding$ -d $OutputPath$ $FilePath$
$ProjectFileDir$