중국시가넷 - 개인 서명 - 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" );
}
}