JNI初步配置并且实现一个小例子
程序员文章站
2022-07-04 16:23:43
首先在新建项目中的local.properties中配置ndk路径ndk.dir=C\:\\android-ndk-r21b在gradle.properties中配置兼容老版本ndkandroid.useDeprecatedNdk=truejni的使用过程1.首先新建调用c代码的类这里以Godv为例public class Godv { { System.loadLibrary("Hello"); } //定义调用代码 publi...
首先在新建项目中的local.properties中配置ndk路径
ndk.dir=C\:\\android-ndk-r10e
这里分享一下这个版本的ndk
链接:https://pan.baidu.com/s/1bL3yKwYrrpff_CuvHlNHyQ
提取码:weaj
配置环境变量
在gradle.properties中配置兼容老版本ndk 项目gradle.properties下
#android.useDeprecatedNdk=true
android.deprecatedNdkCompileLease=1600525901073
jni的使用过程
1.首先新建调用c代码的类这里以Godv为例
public class Godv {
{
System.loadLibrary("Hello");
}
//定义调用代码
public native String sayHello();
}
2.build.gradle(app)android -> defaultConfig下配置
ndk{
moduleName "Hello" //so 文件 lib+moduleName+.so
abiFilters 'armeabi' , 'armeabi','x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a' //cpu类型
}
sourceSets{
main{
jniLibs.srcDirs=['libs']
}
}
3.写c文件
#include <stdio.h>
#include <stdlib.h>
#include <jni.h>
jstring Java_com_godv_hello_Godv_sayHello (JNIEnv * env ,jobject jobj)
{
char * text = "hello i am godv ";
return (* env)->NewStringUTF(env,text);
}
4.main
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String s = new Godv().sayHello();
System.out.println(s);
}
}
本文地址:https://blog.csdn.net/we1less/article/details/108685734
上一篇: 为什么网络速度很慢呢?