我正在尝试调用自定义 Java 类型的方法,但接收到 SIGSEGV 信号。
这是Java代码
package com.example.JniApi;
public class JniApi {
public void test()
{
MyType obj = new MyType();
nativePrintMyTypeMsg(obj);
}
public static native void nativePrintMyTypeMsg(MyType obj);
}
public class MyType {
public void printMsg()
{
android.util.Log.d("TestJni", "From Java");
}
}
这是本机代码
JNIEXPORT void JNICALL Java_com_example_JniApi_JniApi_nativePrintMyTypeMsg
(JNIEnv *env , jclass, jobject myObj)
{
jclass myTypeClass = env->GetObjectClass(myObj);
jmethodID printMsgMethodId = env->GetMethodID(myTypeClass,"printMsg", "()V");
for(size_t i = 0; i < 1000; ++i){
env->CallObjectMethod(myObj, printMsgMethodId);
}
return;
}