Прежде всего, я хочу рассказать вам, что я хочу делать. У меня есть .h-файл и .c-файл с обычным C-кодом, в котором я создал общую библиотеку с Android NDK. Итак, теперь у меня есть .so-файл, который называется libtry.so. Кроме того, я хочу использовать собственный код в своем проекте Android Eclipse. Так что я создал .java-файл с классом «Счетчик» и содержаниемNDK-link библиотека в другую библиотеку «Невозможно загрузить библиотеку: link_image [1966]: 1765 не удалось загрузить нужную библиотеку ...»
public native static int Number(int n);
и
static
{
System.loadLibrary("test");
}
Затем я создаю файл C-заголовок из .java-файл с помощью инструмента javah.
Впоследствии я создаю C-исходный файл для C-Headerfile, в котором я реализую собственный код.
Затем я создаю общую библиотеку с этими двумя файлами с LOCAL_MODULE := test
, так что файл будет называться libtest.so
. Но дело в том, что я хочу связать общую библиотеку libtry.so, которую я создал в начале, в эту общую библиотеку.
Итак, в Android.mk-файле libtest.so я положил LOCAL_LDLIBS := -L/root/Android/Samples/Test/libs/ -ltry
.
На самом деле это работает, потому что я могу скомпилировать этот Android.mk-файл с помощью ndk-build.
Но теперь в моем проекте Eclipse, если я хочу использовать библиотеку libtest.so, это не сработает. Я имею в виду, если я создаю объект класса «Счетчик», в который загружается библиотека libtest.so,
Я получаю error: "Cannot load library: link_image[1966]: 1752 could not load needed library 'libtry.so' for 'libtest.so'"
.
Что я делаю неправильно? Заранее спасибо.
вы используете ваш так файл для другого проекта или тот, в котором у вас есть код C –
Для того же проекта. На самом деле я хочу еще раз пояснить это для более подробной информации. Файл .so libtry.so содержит функции, которые должны использоваться libtest.so. Так что я сделал ссылку на libtry.so на libtest.so в Android.mk libtest.so, как показано в моем первом комментарии. Я могу скомпилировать с помощью ndk-buid. Но я не могу использовать libtest.so в своем прообразе Eclipse из-за ошибки, указанной в заголовке этого раздела. –
Мой ответ с этой ссылкой был удален. http://stackoverflow.com/questions/10593987/android-ndk-linking/10615769#10615769 В ответ на ваш ответ да, шаги в ссылке показывают, как построить третий libtry.so с помощью только c-источника. В моем случае это была библиотека физики, которую мы должны использовать во многих наших играх. Поэтому мы рассмотрели возможность создания отдельной библиотеки для будущего использования. – codetiger