此篇讲解C/C++函数调用Java函数计算数字之和,C/C++传递99和127给Java函数计算数字之和;
Java的计算方法CCallJavaTools类:
package com.niubashaoye.ndk.jni;
public class CCallJavaTools {
/**
* java实现数字相加
*
* @param num
* @param num2
* @return
*/
public int addNum(int num, int num2) {
return num + num2;
}
}
C/C++函数:
/*
* Class: com_niubashaoye_ndk_jni_JNITools
* Method: addNum
* Signature: (II)I
*/
JNIEXPORT jint JNICALL Java_com_niubashaoye_ndk_jni_JNITools_addNum(JNIEnv *env,
jobject obj) {
//通过反射获取java类
jclass ccallj = env->FindClass("com/niubashaoye/ndk/jni/CCallJavaTools");
//得到方法id
//参数列表:反射类,方法名称,方法签名
jmethodID methodID = env->GetMethodID(ccallj, "addNum", "(II)I");
//实例化该类
jobject jobj = env->AllocObject(ccallj);
//调用方法
//参数列表:类的实例化,方法ID,可变参数
return env->CallIntMethod(jobj, methodID, 99, 127);
}
代码下载:https://download.csdn.net/download/niuba123456/10533304