У меня есть некоторый собственный код (назовем его «a»), который использует другой внешний готовый библиотечный код (назовем его «b»), и я связал их следующим образом:
(согласно https://developer.android.com/studio/pr ... gure-cmake)
Код: Выделить всё
cmake_minimum_required(VERSION 3.4.1)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -frtti -fno-common -fexceptions")
include_directories(
#a's include files' paths
#b's include files' paths)
file(GLOB_RECURSE A_SOURCES
#a's source files' paths)
add_library(a_lib SHARED ${A_SOURCES})
add_library(b_lib SHARED IMPORTED)
set_target_properties(b_lib PROPERTIES IMPORTED_LOCATION "b's .so path")
target_link_libraries(a_lib b_lib)
Код: Выделить всё
E/ExceptionHandler: Uncaught Exception java.lang.UnsatisfiedLinkError: dlopen failed: library "libb_lib.so" not found
at java.lang.Runtime.loadLibrary0(Runtime.java:989)
at java.lang.System.loadLibrary(System.java:1530)
at com.mm.projectname.model.libloadingclassname.(libloadingclassname.java:99)
Поэтому мой вопрос заключается в том, как я могу
- либо упаковать предварительно созданный .so моего b в apk
- или запретить системе искать b.so в папке libs и заставить ее искать символы b только в .so a.
Возможно, я делаю очень небольшую ошибку, и был бы очень признателен, если бы кто-нибудь указал на это.
Заранее спасибо
Подробнее здесь: https://stackoverflow.com/questions/520 ... -not-found
Мобильная версия