Невозможно использовать библиотеку, генерируемую ржавкой через файл .dll с Kotlin через JNIJAVA

Программисты JAVA общаются здесь
Anonymous
Невозможно использовать библиотеку, генерируемую ржавкой через файл .dll с Kotlin через JNI

Сообщение Anonymous »

Я пишу простую библиотеку ржавчины для доступа из Котлина через JNI (нативный интерфейс Java), но она не работает.

Код: Выделить всё

[lib]
crate-type = ["rlib", "cdylib"]
< /code>
А вот фактический код ржавчины, он довольно просто: < /p>
#[no_mangle]
pub extern "C" fn hello_world() {
println!("Hello World!");
}

#[no_mangle]
pub extern "C" fn hello_name(name: String) {
println!("Hello {}!", &name);
}
< /code>
В моем коде Kotlin: < /p>
fun main() {
Lib.hello_world()
Lib.hello_name("Jake")
}

class Lib {
companion object {
external fun hello_world()
external fun hello_name(name: String)

init {
System.loadLibrary("hello")
}
}
}
< /code>
Когда я запускаю программу Kotlin, я получаю следующую ошибку: < /p>
Exception in thread "main" java.lang.UnsatisfiedLinkError: 'void Lib$Companion.hello_world()'
at Lib$Companion.hello_world(Native Method)
at MainKt.main(Main.kt:2)
at MainKt.main(Main.kt)
< /code>
Есть ли способ это исправить? Должен ли я рассмотреть возможность обучения/использования ящика libc 
или проблема связана с чем -то другим?


Подробнее здесь: https://stackoverflow.com/questions/700 ... in-via-jni

Вернуться в «JAVA»