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