Android Studio下第一个JNI

环境:Android Studio1.5.1


1.Project Structure中配置Android NDK Location(下载好的NDK的路径,没有下载直接点击下方的download)

2.在MainActivity中声明一个本地方法(注意:没有方法体,方法体由C/C++语言实现)并Make Project

     如:public native String DataFromNative();

 然后加上(作用是:加载后面生成的so库)

static{

System.loadLibrary("MyJNI");

}

提醒:Make Project之后本地方法仍然报红,在此不用理会,后面自动消失

3.Settings->Tools->External Tools->添加一个名为javah(名字自取)的自定义工具,设置如下

(1)Program: $JDKPath$\bin\javah.exe

(2)Parameters: -classpath . -jni -d $ModuleFileDir$/src/main/jni $FileClass$

(3)Working diretory: $ModuleFileDir$\src\main\java

4.在app/src/main目录下建立一个jni文件夹

5.在MainActivity(也就是本地方法所在的文件)上右键->External Tools->javah

结果为:Process finished with exit code 0 表示成功

此时jni文件夹中会自动生成一个头问价(如:com_robert_jjj_MainActivity.h)

6.接下来正式开始实现本地方法了

在jni文件夹下新建main.c文件

内容如下:

#include "com_robert_jjj_MainActivity.h"

JNIEXPORT jstring JNICALL Java_com_robert_jjj_MainActivity_DataFromNative

(JNIEnv *env, jobject obj){

return (*env)->NewStringUTF(env,"This just a test for Android Studio NDK JNI developer!");

}

7.配置

7.编译

报错:

Error:(14, 0) Error: NDK integration is deprecated in the current plugin.  Consider trying the new experimental plugin.  For details, see http://tools.android.com/tech-docs/new-build-system/gradle-experimental.  Set "android.useDeprecatedNdk=true" in gradle.properties to continue using the current NDK integration.

解决办法:

在gradle.properties 文件中加入下面这句话,重新编译

android.useDeprecatedNdk=true;

重新编译一次完美完成!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容