Android Studio第一个jni程序

基于android studio1.4 gradle 2.5


一名苦逼的程序员,花了一天时间查找各种资料,学习前辈教程,终于跑成功了第一个jni程序,将过程记录下来,加深印象。


具体步骤

再次之前请先下载NDK 

1.新建一个android程序起名 AndroidJniTest。

2.java代码下新建名为ndk的文件夹,新建类NdkTest.class,里面是我们要调用的jni本地方法

Android Studio第一个jni程序_第1张图片

3.在我们的builde.gradle文件下的defaultConfig中添加我们的NDK信息 

Android Studio第一个jni程序_第2张图片
添加上面信息之后,编辑器会提示我们Sync我们的Gradle 点击编译之后,出现一个错误:

Error:(15, 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.
Open File

ok我们按照错误的提示来在 gradle.properties文件中加入 android.useDeprecatedNdk =true 再次Sync 错误没有

4.接下来要编译我们.h文件了 build一下我们项目在我们项目的\AndroidJniTest2\app\build\intermediates\classes\debug 目录下会出现我们需要的NdkTest.class文件 我们可以直接用Studio的terminal 命令行窗口进到上面的路径下   cd AndroidJniTest2\app\build\intermediates\classes\debug 执行javah -jni lx.com.androidjnitest2.ndk.NdkTest  完成之后会生成我们需要的lx_com_androidjnitest2_ndk_NdkTest.h 文件。如下

Android Studio第一个jni程序_第3张图片

5.在main文件下创建jni文件夹。将上面生成的.h文件复制到jni文件夹下面,继续在jni下面创建一个JniTest.c的文件 文件名字 无要求,学过C语言的同学都知道.h为头文件,定义我们的方法.c文件来实现。文件如下

Android Studio第一个jni程序_第4张图片

这里只是返回一直String。完成之后我们点击编译,又出现了错误:

Error:Execution failed for task ':app:compileDebugNdk'.
> NDK not configured.
Download the NDK from http://developer.android.com/tools/sdk/ndk/.Then add ndk.dir=path/to/ndk in local.properties.
(On Windows, make sure you escape backslashes, e.g. C:\\ndk rather than C:\ndk)

不得不说AS的强大,提醒很方便,它告诉我们要先下载NDK 然后配置我们的路径,OK我们把第一步上面下载的NDK目录配置到 local.properties中就可以了,这个文件中有我们SDK的路径,依照它配好就OK了

编译过后在AndroidJniTest2\app\build\intermediates\ndk\debug\lib 目录会生成我们在第3步中配置的3个文件 并且在文件下 有我们需要的.so文件

6.接下来就是调用我们的jni了在我们的mainActivity下面调用.

Android Studio第一个jni程序_第5张图片

运行我们的程序:

Android Studio第一个jni程序_第6张图片

OK我们第一个调用JNI的程序运行成功。

demo下载地址点击打开链接

你可能感兴趣的:(Android)