对于使用Kotlin的方法,jmethodID为NULL
即使方法存在,我正在使用本机库,并有以下例外。 我有一个nativeInit函数也被导出到MapController,并按预期工作。 但是,nativeLoadScene方法会导致错误。
JNI DETECTED ERROR IN APPLICATION: jmethodID was NULL in call to CallObjectMethodV from int com.demo.lib.MyController.nativeLoadScene(long, java.lang.String, java.lang.String[])
JNI方法
JNIEXPORT jint JNICALL Java_com_demo_lib_MyController_nativeInit(JNIEnv *jniEnv, jobject obj, jobject tangramInstance, jobject assetManager) { ... } JNIEXPORT jint JNICALL Java_com_demo_lib_MyController_nativeLoadScene(JNIEnv* jniEnv, jobject obj, jlong mapPtr, jstring path, jobjectArray updateStrings) { ... }
com.demo.lib.MyController.kt
companion object { init { System.loadLibrary("c++_shared") } } // this works external fun nativeInit(instance: MapController, assetManager: AssetManager?): Long // this gives error external fun nativeLoadScene(mapPtr: Long, path: String, updateStrings: Array?): Int