今天要说的是如何在Android Studio下的NDK的配置和使用
起始这样的话题在网上一大把大把的,为何还拿出来说呢?以前是用Eclipse做NDK的,但是现在用AS了,当然的不同,然后自己百度了下,发现大部分都是相互的抄来
抄去的,很多的东西结果还是没有说清楚,最后按照别人说的还是搞不出来,无奈只能自己的参考着别人的 结合自己的情况,最终完成,所以保存着算是一个教程吧。
以下是自己总结的几个步骤了:
// 1. 在类里定义native方法 顺便make编译一下
public native String getName() ;
// 2. 在AS里打开cmd 进入到项目moudel中的java目录执行javah命令:// javah -jni -d ../jni/ + 写有native方法的类名(包含包名) 生成.h文件到jni目录中
// 3. 在jni目录中新建一个c文件,把生成的头文件中的 JNIEXPORT 部分代码实现(实现native方法)
#include "com_newer_jni2_MainActivity.h" JNIEXPORT jstring JNICALL Java_com_newer_jni2_MainActivity_getName (JNIEnv *env , jobject jobj){ return (*env)->NewStringUTF(env,"来自c语言的内容!"); }
// 4. 打开build.gradle文件,在defaultConfig中加入:ndk{ moduleName "你的库名" //定义库名 }
// 5. 在你要使用native方法的类中添加:static{ System.loadLibrary("你的库名"); }
// 6. 如果没有设置NDK路径请到 file -> project structure中设置,没有NDK?推荐给网站:
NDK下载
// 7. make一下会有错误提示,根据错误提示,在gradle.properties中添加:android.useDeprecatedNdk=true
// 8. 编译运行即可(中间的几个步骤可以make一下)
可能当中会有些错误,自己更改下顺序就可以了。