AndroidSutdio中的jni开发

来源:互联网 发布:linux 修改服务器时区 编辑:程序博客网 时间:2024/05/22 05:08

欢迎来到王江华的博客

本章节介绍如何在AndroidStudio中开发jni

本文是基于AndroidStudio2.2开发的
- 1.首先创建一个AndroidStudio工程,创建一个java类
public class JNITest {
static {
System.loadLibrary(“test”);//test就是so库的名字
}
public static native String getC();
}

  • 2.在app->build.gradle的defaultConfig里边加入ndk{moduleName”test”}//test是可以随便修改的,但是在System.loadLibrary的时候也要随之改变.
    这里写图片描述
    3.创建好java类后首先build->Make Project下(2.2之前的点击build按钮),不然下边命令行步骤会出现找不到*的类文件错误
    这里写图片描述
    笔者在写测试代码的时候也出现了该错误,原因是包名类名错误.最好去复制全类名,不要手打.
  • 4.代开命令行进入到当前项目的main文件夹,输入命令javah -d jni -classpath ….\build\intermediates\classes\debug com.example.admin.ndktest2.JNITest
    这里写图片描述
    在这里解释下命令的意思.javah 编译.h文件 -d jni 创建jni文件夹..\是返回上一级2个..\就是返回上2级也就是app目录,进入build->intermediates->classes->debug->文件夹下的包名+类名.class,就是编译这个.class的.h文件(头文件)
  • 5.创建.c文件,把.h文件中生成的方法复制过来
    这里写图片描述
    注意要自己添加红框中的evn,obj
    注意图片中的第一行#include一定要换成你自己的.h文件名
    代码return (*env)->NewStringUTF(env, “world C!”);
  • 6.会遇到Error:Execution failed for task ‘:app:compileDebugNdk’.错误
    这里写图片描述
  • 7.在gradle.properties中加入一行代码
    android.useDeprecatedNdk=true
    这里写图片描述
  • 8笔者在activity的一个按钮中调用了jni
    这里写图片描述
    提示:有的AndroidStudio版本是需要2个.c文件才可以正常运行的,另一个.c空内容就行
  • 好了大功告成
    这里写图片描述
0 0
原创粉丝点击