andriod

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

2016-07-07  本文已影响90人  60916fc63567

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

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

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);

}

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

上一篇 下一篇

猜你喜欢

热点阅读