小编Dar*_*rio的帖子

在Android Studio中使用预构建的共享库(cmake)

我想在我的Android应用程序中使用C ++共享库。我尝试按照hello-libsGoogle NDK示例中的示例进行操作,但由于某种原因它无法解决问题。

似乎我的媒体库没有打包到APK中。我发现的所有教程都使用*.mk-files,但是我想使用cmake

这是我的CMakeLists.txt:

# Sets the minimum version of CMake required to build the native library.
cmake_minimum_required(VERSION 3.4.1)

# native lib
add_library(native-lib SHARED
            native-lib.cpp)

set(IMPORT_DIR ${CMAKE_SOURCE_DIR}/../jniLibs)

# shared lib
add_library(shared-lib SHARED IMPORTED)
set_target_properties(shared-lib PROPERTIES IMPORTED_LOCATION
                      ${IMPORT_DIR}/dynamic/lib/${ANDROID_ABI}/libLibrary.so)
target_include_directories(native-lib PRIVATE
                           ${IMPORT_DIR}/dynamic/include)

# linking libs
target_link_libraries(native-lib
                      android
                      shared-lib
                      log)
Run Code Online (Sandbox Code Playgroud)

当我shared-lib与其他人链接在一起时,在运行该应用程序时出现以下错误:

E/art: dlopen("/data/app/my.package.name-1/lib/arm/libnative-lib.so", RTLD_LAZY) failed: dlopen failed: library "C:/projects/HelloLibs/app/src/main/cpp/../jniLibs/dynamic/lib/armeabi-v7a/libLibrary.so" not foun
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: my.package.name, PID: 29266
                  java.lang.UnsatisfiedLinkError: …
Run Code Online (Sandbox Code Playgroud)

c++ android android-ndk android-gradle-plugin android-studio-3.0

6
推荐指数
1
解决办法
3420
查看次数