Могу ли я использовать интерфейсы JNI в моем коде C++ при использовании dart:ffi во флаттере?

Теперь я загружаю свой код на C++:

final DynamicLibrary nativeAddLib =
  Platform.isAndroid
    ? DynamicLibrary.open("libnative_add.so")
    : DynamicLibrary.process();

но JNI_OnLoad в моем файле.cpp не выполняется:

JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) {
  LOGI("JNI_OnLoad!");
}

1 ответ

Как сказал @Botje, кажется, что DynamicLibrary.open не указывает JVM загружать библиотеку.

Напоследок добавлю еще .so библиотека для инкапсуляции взаимодействия с JNI, и загрузите его через System.loadLibrary в java.

Другие вопросы по тегам