jni GetMethodID 多个参数

最近在做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");
    }

}

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值