як включити попередньо побудовані спільні бібліотеки в apk з eclipse

У мене є спільна бібліотека libfoo.so і потрібно використовувати її в моєму Android App.

Моя перша спроба була в Android.mk:

include $(CLEAR_VARS)
LOCAL_MODULE := test
LOCAL_SRC_FILES := test.cpp
LOCAL_LDLIBS := -L$(PATH_TO_FOO) -lfoo
include $(BUILD_SHARED_LIBRARY)

у моїй діяльності я маю:

statis
{
    System.loadLibrary("foo");
}

Це правильно будується, але я помітив, що створений apk не включає libfoo.so (також я бачу, що він не копіюється до libs/armeabi). Я думаю, з цієї причини я UnsatisfiedLinkError при виконанні мого додатка.

Я побачив у деяких інших публікаціях, які мені потрібно додати $ (PREBUILD_SHARED_LIBRARY), тому додаю до свого Android.mk:

include $(CLEAR_VARS)
LOCAL_MODULE:= foo
LOCAL_SRC_FILES := $(FOO_PATH)/libfoo.so
include $(PREBUILD_SHARED_LIBRARY)

Але зараз я отримую помилку збірки:

foo: LOCAL_SRC_FILES points to a missing file.

Я впевнений, що шлях правильний. Зверніть увагу, що libfoo.so мав оригінально номер версії в кінці, хоча мені довелося видалити його (і залишити тільки .so), оскільки ndk-build скаржився.

Що я роблю неправильно?

7

3 Відповіді

Знайдено рішення !! LOCAL_SRC_FILES не може мати абсолютних або відносних шляхів, а лише ім'я файлу. Шлях повинен бути встановлений у LOCAL_PATH.

Тому в моєму випадку замість:

LOCAL_SRC_FILES := $(FOO_PATH)/libfoo.so

Я тепер:

LOCAL_PATH := $(FOO_PATH)
LOCAL_SRC_FILES := libfoo.so

І це працює нормально.

5
додано
Проголосувати. LOCAL_SRC_FILES може обов'язково містити відносні шляхи.
додано Автор Paul Du Bois, джерело
ей .. ви можете покласти світло на нього. m стикається з такою ж проблемою. Я маю 3 .so файли, які будуть завантажені, що я повинен написати в .mk файл?
додано Автор Chaitanya Chandurkar, джерело
так узгоджено це може мати відносні шляхи.
додано Автор pauld, джерело
Чи може вона мати абсолютні шляхи?
додано Автор Kadinski, джерело

Очевидно, що посилання включено:

include $(PREBUILD_SHARED_LIBRARY)

має бути

include $(PREBUILT_SHARED_LIBRARY)
5
додано

У eclipse, я додаю статичну бібліотеку, копіюючи файл у шлях/libs/armeabi/і переробляючи проект після його очищення. Це включає в себе .so у apk.

1
додано
Це не працює для мене (ADT22, Indigo, ndk-r9). Бібліотека видаляється під час збирання.
додано Автор WindRider, джерело
android_jobs_ua
android_jobs_ua
120 учасників

Публикуем вакансии и запросы на поиск работы по направлению Android. Здесь всё: full-time, part-time, remote и разовые подработки.

Mobile Dev Jobs UA
Mobile Dev Jobs UA
20 учасників

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin, RN и т.д.