java代码:
public class Foo {
private long i = 0;
void printI() {
nativePrintI();
}
private native static void nativePrintI();
}
Run Code Online (Sandbox Code Playgroud)
JNI代码:
JNIEXPORT void JNICALL Java_com_aliyun_livestream_Publisher_nativeRelease
(JNIEnv *env, jobject obj) {
jclass cls = env->GetObjectClass(obj);;
jfieldID iField = env->GetFieldID(cls, "i", "J");
jlong i = env->GetLongField(obj, iField);
printf("%lld\n", i);
}
Run Code Online (Sandbox Code Playgroud)
我的被叫者是这样的:
Foo foo = new Foo();
foo.printI();
Run Code Online (Sandbox Code Playgroud)
有时它工作正常,但有时它失败了消息""jni对类java.lang.Class的对象无效"