android ndk 在project中加入引入dll,在Android-Studio中导入“预建库”(NDK支持)

嗨我在Android Studio中制作Android应用程序(版本2.3 - NDK支持)

我有导入库的问题(dlib)

我将.so文件(libandroid_dlib.so)复制到app / src / main / JniLibs / armeabi-v7a文件夹

我更改了CMakeLists.txt设置

我从MainActivity.java文件加载了库

我的代码没有错误但是当我像上面那样导入dlib时,我的应用程序无效!

错过了一步吗?非常感谢你

MainActivity.java

static {

System.loadLibrary("opencv_java3");

System.loadLibrary("android_dlib");

System.loadLibrary("imported-lib");

System.loadLibrary("native-lib");

}

的CMakeLists.txt

set(pathOPENCV /Users/gicheonkang/OpenCV-android-sdk)

set(pathPROJECT /Users/gicheonkang/AndroidStudioProjects/HelloWorld)

set(pathLIBOPENCV_JAVA ${pathPROJECT}/app/src/main/JniLibs/${ANDROID_ABI}/libopencv_java3.so)

set(pathDLIB /Users/gicheonkang/dlib)

set(pathLIBDLIB ${pathPROJECT}/app/src/main/JniLibs/${ANDROID_ABI}/libandroid_dlib.so)

cmake_minimum_required(VERSION 3.4.1)

# CMAKE settings

set(CMAKE_VERBOSE_MAKEFILE on)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")

# include *.cpp and *.h file

file(GLOB Library_SOURCES_FACEANALYSER src/main/cpp/FaceAnalyser/*.cpp)

file(GLOB Library_HEADERS_FACEANALYSER src/main/cpp/FaceAnalyser/*.h)

include_directories(${pathOPENCV}/sdk/native/jni/include)

include_directories(${pathDLIB}/dlib)

# Creates and names a library, sets it as either STATIC

# or SHARED, and provides the relative paths to its source code.

# You can define multiple libraries, and CMake builds it for you.

# Gradle automatically packages shared libraries with your APK.

add_library( # Sets the name of the library.

native-lib

# Sets the library as a shared library.

SHARED

# Provides a relative path to your source file(s).

# Associated headers in the same location as their source

# file are automatically included.

src/main/cpp/native-lib.cpp )

add_library( lib_opencv SHARED IMPORTED )

add_library( dlib SHARED IMPORTED )

add_library( imported-lib SHARED ${Library_SOURCES_FACEANALYSER} ${Library_HEADERS_FACEANALYSER})

set_target_properties(lib_opencv PROPERTIES IMPORTED_LOCATION ${pathLIBOPENCV_JAVA})

set_target_properties( dlib PROPERTIES IMPORTED_LOCATION ${pathLIBDLIB})

set_target_properties( imported-lib PROPERTIES LINKER_LANGUAGE CXX )

find_library( log-lib log )

find_library( android-lib android)

# Specifies libraries CMake should link to your target library. You

# can link multiple libraries, such as libraries you define in the

# build script, prebuilt third-party libraries, or system libraries.

target_link_libraries( # Specifies the target library.

imported-lib

# Links the target library to the log library

# included in the NDK.

lib_opencv

#here is the problem

#dlib

)

target_link_libraries( # Specifies the target library.

native-lib

# Links the target library to the log library

# included in the NDK.

${log-lib}

${android-lib}

#imported-lib

lib_opencv

#here is the problem!!!!!!

#dlib

)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值