Я получаю java.lang.UnsatisfiedLinkError при попытке вызвать нативную функцию из моего проекта, настроенного с помощью bazel
Я создал cc_library в моем файле сборки bazel и добавил зависимости в правиле android_binary
Базель СТРОЙ:
cc_library(
name = "native_libs",
srcs = glob([
"app/src/main/jni/**/*.cc",
"app/src/main/jni/**/*.h",
]),
)
android_binary(
name = "buildlib",
srcs = glob([
"app/src/main/java/**/*.java",
]),
manifest = "app/src/main/AndroidManifest.xml",
deps = ":native_libs",
)
И загрузил библиотеку в указанный пакет как
static{
System.loadLibrary("buildlib");}
И объявляет и вызывает собственную функцию как:
Декларация:
private static native String foo(String code);
Вызов функции
foo("Code");
ОБЪЯВЛЕНИЕ И ОПРЕДЕЛЕНИЕ ФУНКЦИЙ JNI-ФАЙЛА:
JNIEXPORT jstring JNICALL
Java_com_example_android_(foo)( JNIEnv* env, jobject thiz, jstring code );
JNIEXPORT jstring JNICALL
Java_com_example_android_(foo)( JNIEnv* env, jobject thiz, jstring code )
{
//some code
return code;
}
Библиотека загружается успешно, но при вызове функции выдается ошибка java.lang.UnsatisfiedLinkError
Как я могу вызвать собственный foo() из моего файла java?