环境:我用的AS版本是2.2.2 ,JDK是 1.8.0_101,编译版本是24
如果你创建AS项目之前没有勾选
此选项。
你可以在项目选中app目录鼠标右键就可选择Link C++ Project with Gradle 选项来支持JNI
默认选择的是CMake,因为以前用的是ndk-build所以我选择的是它,可能刚开始你找不到Android.mk文件,你也不用去创建,你把native写好,和c文件创建,并用javah命令生成jni的方法之后,你在app的build目录下可找到mk文件,这样的话你写JNI代码就会有提示了。
然后创建JNI Folder文件
然后选择Project模式文件名为jni,Android模式为cpp这个没什么影响
然后在build.gradle 中添加
然后在gradle.properties文件中添加
android.useDeprecatedNdk=true
然后在jni文件下创建自己的c文件
然后在Activity中或者是自己创建的类中写入native方法,然后进入当前项目的main目录下,使用javah命令
如果提示编码GBK的不可映射字符,是因为类中有中文,去掉中文即可
这就是我在as下写的第一个jni程序
注意
1、ndk文件中最好不要有汉字,不然使用javah命令编译不能通过
2、在自动生成mk文件之前最好指定modleName不然后边重新指定了,mk文件中的名字不会改变,如果之前没指定也没关系可以删掉mk文件并删掉gradle中自动生成的 配置即可重新编译