У меня есть общая библиотека libfoo.so, и мне нужно использовать ее в моем приложении для Android.
Моя первая попытка была в 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 жаловался.
Что я делаю не так?