Ошибка при использовании нативного кода

У меня есть два проекта в eclipse. Проект1 и Проект2. Project1 использует собственный код, который входит в состав:

static {
    System.loadLibrary("thelibraryname");
}

Я добавил Project1 в путь сборки проекта 2. Project2 вызывает методы из класса в Project1, который использует собственные методы. Однако при запуске Project2 я получаю сообщение об ошибке:

Исключение в потоке "main" java.lang.UnsatisfiedLinkError: нет имени библиотеки в java.library.path

Структура каталогов моего проекта eclipse выглядит следующим образом:

Project1
    Android 1.6
    Android Dependancies
    src/
    bin/
    libs/
        armeabi/
            libthelibraryname.so
        armeabi-v7a/
            libthelibraryname.so
        x86/
            libthelibraryname.so
    <some-other-dirs-and-files>
Project2
    src/
        Testing.java
    Junit
    JRE System Library

Я обнаружил, что ошибка как-то связана с нативным кодом. Возможно, мне нужно где-то указать ссылку на собственный код, но я не мог найти, как это сделать. Обратите внимание, что eclipse не указывает на какие-либо ошибки во время компиляции, только во время выполнения.

Любые идеи, что я могу сделать, чтобы исправить это? :)

Редактировать:

  • Я работаю на 64-битной платформе с 32-битной JRE.
  • я пробовал: -Djava.library.path=/path/to/lib/x86 (и с armeabi-v7a и armeabi). Но это ничего не изменило.

person Maricruzz    schedule 12.05.2014    source источник
comment
Вы используете это на 64-битной платформе? Вы используете 32-битную JRE?   -  person Elliott Frisch    schedule 12.05.2014
comment
Вы пробовали бегать с -Djava.library.path=/path/to/lib/folder?   -  person Duncan Jones    schedule 12.05.2014
comment
Для начала попробуйте вывести значение свойства java.library.path. Если местоположение вашей библиотеки не указано на нем, вам нужно убедиться, что оно есть.   -  person    schedule 12.05.2014
comment
Я отредактировал свой ответ, чтобы ответить на комментарии выше.   -  person Maricruzz    schedule 12.05.2014
comment
Если JRE 32-разрядная, то библиотека, которую вы пытаетесь загрузить, также должна быть 32-разрядной. Это?   -  person martinez314    schedule 13.05.2014


Ответы (1)


вот инструкция по использованию кодировки UTF-8, и она будет работать http://stijndewitt.wordpress.com/2010/05/05/unicode-utf-8-in-eclipse-java/

person Alex G    schedule 12.05.2014
comment
Ваша ссылка не подходит. Но я полагаю, что это: stijndewitt.wordpress. com/2010/05/05/ - person Maricruzz; 12.05.2014
comment
Можете ли вы уточнить, почему это может помочь? - person Stijn de Witt; 13.05.2014