您的位置:首页 > 其它

jni GetMethodID 多个参数

2013-09-13 08:55 337 查看
最近在做NDK开发

1。对于本地静态方法 public static native String getStr(); 对应C/C++代码,不需要加入static关键字。

2。对于静态方法。第二个参数:jclass. 表示调用类。

3。对于非静态方法。第二个参数 :jobject 表示类实例。

4。对于多个参数。好吧比如两个ini,那么就是:"(II)V"); 一个:"(I)V");

一下是例子

c/c++ 代码

JNIEXPORT jstring JNICALL Java_com_permadi_testjni_JNIDemo_getStr(JNIEnv *env,

jclass obj) {

jmethodID onMapSurfaceCreate = env->GetMethodID(obj, "fsum", "(II)V");

jobject mFileDescriptor = env->NewObject(obj, onMapSurfaceCreate);

env->CallVoidMethod(mFileDescriptor, onMapSurfaceCreate, 1, 2);

return env->NewStringUTF("I'm from C!");

}

java 代码:

import android.util.Log;

public class JNIDemo {

// 本地静态方法

public static native String getStr();

// 本地方法

public native int getCint(String str);

// 回调函数

private void fsum( int i, int j){

Log.e("aaaa", "aaaaa");

}

static {

System.loadLibrary("TestJni");

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: