중국시가넷 - 개인 서명 - callvoidmethod의 매개변수 methodid가 비어 있는지 확인하는 방법은 무엇입니까?

callvoidmethod의 매개변수 methodid가 비어 있는지 확인하는 방법은 무엇입니까?

1. C/C 코드에 해당하는 로컬 정적 메소드 public static Native String getStr()의 경우 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-gt; "fsum", "( II)V");

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

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

return env-gt;NewStringUTF("저는 C 출신입니다!");

}

java 코드:

import android .util.Log;

public class JNIDemo {

// 로컬 정적 메서드

public static Native String getStr(); /p>

// 네이티브 메소드

public Native int getCint(String str);

// 콜백 함수

private void fsum(int i , int j){

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

}

static {

시스템 .loadLibrary("TestJni" );

}

}