java.lang.UnsatisfiedLinkError - PullRequest
       1

java.lang.UnsatisfiedLinkError

5 голосов
/ 27 января 2011

java.lang.UnsatisfiedLinkError

Я использую пример hello-jni, и по любой причине я получаю java.lang.UnsatisfiedLinkError, когда пытаюсь вызвать библиотеку hello-jni.Есть идеи почему?Должен ли я где-нибудь установить свой путь?

в HelloJni.java:

public native String  stringFromJNI();

и

static {
    System.loadLibrary("hello-jni");
}

в hello-jni.c:

jstring
Java_com_bdunlay_hellojni_HelloJni_stringFromJNI( JNIEnv* env,
                                                  jobject thiz )
{
    return (*env)->NewStringUTF(env, "Hello from JNI !");
}

exception trace

.so файл ... project_root / libs / armeabi / libhello-jni.so

Ответы [ 4 ]

5 голосов
/ 27 января 2011

у твоего родного нет JNIEXPORT. Обычно это объявляется в заголовочном файле с объявлением функции.

Мы будем использовать javah -jni для генерации заголовка

4 голосов
/ 01 ноября 2012

См. Android-ndk-r8b / documentation.html для дополнительной информации.

По умолчанию образец не включает файл Application.mk (в папке / jni /). Я исправил проблему, добавив этот файл в свой проект и добавив следующую единственную запись, которая позволяет создавать встроенные файлы для нескольких типов процессоров (особенно для x86 в моем случае):

APP_ABI := armeabi armeabi-v7a x86

После добавления этого файла вы можете снова запустить ndk-build, чтобы создать необходимые файлы, а затем собрать APK как обычно.

0 голосов
/ 08 декабря 2014

В моем случае причина ошибки была следующей: если у вас несколько библиотек, загруженных как

System.loadLibrary("lib1");
System.loadLibrary("lib2");

, а lib1 зависит от lib2, вам сначала нужно загрузить lib2.

0 голосов
/ 03 сентября 2013

java.lang.UnsatisfiedLinkError: Собственное исключение метода не найдено для методов из OpenCV означает, что вы пытаетесь использовать OpenCV до его инициализации.Вы можете использовать объекты OpenCV и вызывать методы из библиотеки только после onManagerConnected со статусом LoaderCallbackInterface.SUCCESS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...