Я хочу использовать существующую собственную библиотеку из проекта другого Android, поэтому я просто скопировал библиотеку NDK (libcalculate.so) в свой новый проект Android. В моем новом проекте Android я создал папку libs/armeabi/
и разместил там libcalculate.so. Существует папка нет jni/. Мое тестовое устройство имеет архитектуру ARM.
В моем java-коде я загружаю библиотеку:
static{
System.loadLibrary("calculate");
}
Когда я запускаю свой новый проект для Android, я получил ошибку:
java.lang.UnsatisfiedLinkError: ...
nativeLibraryDirectories=[/vendor/lib, /system/lib]]] couldn't find "libcalculate.so"
Итак, как говорит ошибка, скопированная собственная библиотека не находится в /verdor/lib или/system/lib, как решить эту проблему в моем случае?
(Я распаковал пакет apk, в lib/есть libcalculate.so)
==== ===== ОБНОВЛЕНИЕ
Я также попытался создать jni/папку под корнем проекта и добавить файл Android.mk в jni/. Содержимое Android.mk:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libcalculate
LOCAL_SRC_FILES := libcalculate.so
include $(PREBUILT_SHARED_LIBRARY)
Затем, в корне проекта, я выполнил ndk-build. После этого каталоги armeabi/и armeabi-v7a/генерируются ndk-build (с libcalculate.so внутри папки).
Затем я запустил проект maven для создания проекта. В последнем пакете apk есть:
lib/armeabi/libcalculate.so
lib/armeabi-v7a/libcalculate.so
Но когда я запускаю свое приложение, тот же самый код ошибки:
java.lang.UnsatisfiedLinkError: ...
nativeLibraryDirectories=[/vendor/lib, /system/lib]]] couldn't find "libcalculate.so"