0

Я могу успешно загрузить собственную библиотеку с System.loadLibrary(""), но когда я вызываю собственный метод из этой библиотеки, я получаю UnsatisfiedLinkError, для этого метода не найдено никакой реализации.UnsatisfiedLinkError при вызове функции native

Но этот код работает в другом приложении, так или иначе в моем нет.

+0

это ваш собственный код? – Blackbelt

+0

@blackbelt нет, это библиотека MSC для подключения к смарт-карте – Taras

+0

MSC остается на карту мышц? – Blackbelt

ответ

3

Вы изменили имя пакета в jni-методе, оно должно быть Java_com_example_yourapp_methodname(JNIEnv * env, jobject thiz), где com_example_yourapp является ссылкой на ваш пакет класса, который вы вызываете методом. и после этого, вы еще раз позвонили ndk-build?

+0

Ох .. Я забыл об этом ... это печально. Спасибо за ответ – Taras

1

Метод Erik N предлагается отлично, но он имеет некоторое влияние на производительность, так как виртуальной машине необходимо искать вызов функции с указанной выше сигнатурой. Вместо этого вы можете сопоставить функции с сигнатурами и зарегистрировать их при вызове функции JNI_OnLoad().

http://docs.oracle.com/javase/1.4.2/docs/guide/jni/spec/functions.html#wp5833

Смежные вопросы