Android NDK(c/c++调用Java函数)

1、在Activity中定义方法和调用方法

Android NDK(c/c++调用Java函数)_第1张图片
Android NDK(c/c++调用Java函数)_第2张图片

2、编译在.h文件中,生成对方法的编译

Android NDK(c/c++调用Java函数)_第3张图片

3、在cpp文件中,实现方法

JNIEXPORTvoidJNICALL Java_androids_ndk_com_myapplication_Main3Activity_executeJavaMethod(JNIEnv *env,jobject instance){

jclass clazz;

clazz = env ->GetObjectClass(instance);

//获取实例方法的方法ID

jmethodID instanceMethodId;

instanceMethodId = env->GetMethodID(clazz,"instanceMethod","()Ljava/lang/String;");

//获取静态方法的方法ID

jmethodID staticMethodId;

staticMethodId = env ->GetStaticMethodID(clazz,"staticMethod","()Ljava/lang/String;");

//调用实例方法

jstring instanceMethodResult;

instanceMethodResult = (jstring)env->CallObjectMethod(clazz,instanceMethodId);

//调用静态方法

jstring staticMethodResult;

staticMethodResult = (jstring)env->CallStaticObjectMethod(clazz,staticMethodId);

}


Android NDK(c/c++调用Java函数)_第4张图片

尼玛,各种坑,我真特么想fuck了......

你可能感兴趣的:(Android NDK(c/c++调用Java函数))