步骤:
1、首先新建一个普通的项目
并且关联NDK

2、在Java目录的包下新建一个Hello的类
public class Hello { public static native String sayHello(); }
这里提示sayHello方法没在JNI中找到的错误,没关系,接下来慢慢解决
3、在terminal里面执行以下命令,目的是生产Hello类对于的头文件
C:\Users\zhengyg\AndroidStudioProjects\MyNdkProject>cd app
C:\Users\zhengyg\AndroidStudioProjects\MyNdkProject\app>cd src/main/java
C:\Users\zhengyg\AndroidStudioProjects\MyNdkProject\app\src\main\java>javah -d ../jni com.example.myndkproject.Hello
这时候在工程的main目录下出现了jni的包


4、在jni包下新建一个Hello.cpp和Hello.h文件
在Hello.cpp中实现这个方法
NIEXPORT jstring JNICALL Java_com_example_myndkproject_Hello_sayHello(JNIEnv * env, jclass jclass1){ return env->NewStringUTF("from c"); }
5、生产.so文件
在app模块的build.gradle下

ndk{
moduleName "hello"
}编译会出现下面的问题

在gradle。properties加上
android.useDeprecatedNdk=true

再次编译就可以了
6、这是运行结果:

JNI调用C示例
本文介绍如何在Android项目中使用JNI技术调用C/C++代码,并通过具体示例演示了从创建Java接口到实现C/C++方法并生成动态链接库(.so)文件的全过程。
7666

被折叠的 条评论
为什么被折叠?



