android studio 使用ndk编译c++库给jni使用
发布日期:2021-05-04 15:33:27 浏览次数:26 分类:精选文章

本文共 1187 字,大约阅读时间需要 3 分钟。

参考

代码例子

 

查看sdk版本

targetSdkVersion 23

 

这个程序我一直没有编译过,很是郁闷,主要是因为gradle版本的问题,但是不知道要怎么改。尝试了很多办法都不行。暂时不折腾了。有编译成功,运行ok的小伙伴留个言交流下,谢谢!qq:410587208

 

参考

Android Studio NDK开发案例一 JNI开发入门

安卓studio jni调用第三方静态库CMakeLists配置

add_library( mytaglib #这是我即将调用第三方静态库,不需要写完整的静态库名。

             STATIC
             IMPORTED )
set_target_properties( mytaglib
                       PROPERTIES IMPORTED_LOCATION
                       ${CMAKE_SOURCE_DIR}/libs/x86/libmytaglib.a )  #libmytaglib.a是完整的库名。
target_link_libraries( mediafile-lib  #这是我自己创建的动态库。
                       mytaglib
                       #z             #有人说要加个z库。其实不加也可以编译通过,并且能运行;加了也没有报错。

                       ${log-lib} )   #这是NDK库文件

build.gradle(app)里面也有一项必要的配置:
        externalNativeBuild {
            cmake {
                arguments '-DANDROID_PLATFORM=android-23',
                        '-DANDROID_TOOLCHAIN=clang', '-DANDROID_STL=gnustl_static'
            }
        }
build.gradle(app)的配置里面少了上面这一段,就会导致编译不通过(目前我发现上面这一段仅仅是针对调用静态库的时候需要用到)。
 

 

最终成功了,需要在cmakelist.txt里加入

#编译dlibadd_library(        dlib        SHARED        ${pathToDlib}/dlib/all/source.cpp)add_library(        liveness        SHARED        ${SRCS})target_link_libraries(        liveness        log        jnigraphics        #链接动态库 使用完整路径        ${PROJECT_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}/libdlib.so)

Android NDK 开发之 CMake 必知必会

ndk之CMake

 

Android下使用CMake链接已有静态库.a生成新的静态库.a,以及动态库.so链接静态库生成新的动态库.so

上一篇:android studio配置
下一篇:cmake3安装和使用

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2025年04月11日 00时22分59秒