当前位置: 移动技术网 > 移动技术>移动开发>Android > JNI初步配置并且实现一个小例子

JNI初步配置并且实现一个小例子

2020年09月19日  | 移动技术网移动技术  | 我要评论
首先在新建项目中的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

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网