Android Studio中jni生成so库的相关步骤

没怎么接触过Android Studio,项目需要,急急忙忙做的,仅此记录一下,以待日后可以参考:

平台:Android Studio 3.0.1

需要下载:

1.NDK

2.CMake

这两个都能在Android Studio上下载,如图:


安装完成之后;(如果只是需要手动ndk生成so库看【1】,如果需要Android Studio自动生成So库看【2】)

【1】    

1.配置环境变量

        1)找到Android Studio下载的NDK目录,可以在File--->Project Structure下,如图:


    接着就是常规的操作,直接上图:



    然后直接Win+R,进入cmd输入ndk-build,如图


    这样就配置NDK成功了。

        2)Gradle配置

                1.Android Studio在Project下,app/build.gradle文件,配置如下:


            2.然后再修改或添加local.properties文件,添加NDK路径:


            3.在修改或添加gradle.properties文件,添加如下:

                android.useDeprecatedNdk=true

            然后在Terminal中,在jni所在的目录,执行ndk-build命令:如果出现ndk 60days,set:问题

            就把 android.deprecatedNdkCompileLease = XXXXXXX,在Messages中可以找到相应的编号。

       这样就完成所有的配置,就可以通过Terminal中编译jni,生成相应的SO库。

这样如果项目中本身通过jni编译生成So库,然后调用也是通过项目调用封装过一层,这样直接run Android,就会出现如下:

Cmake or not NDK 的报错。就需要进入【2】配置Cmake操作

【2】

    1)基于【1】配置下,

            1.在app文件夹下新建CMakeLists.txt:

# Sets the minimum version of CMake required to build the native
# library. You should either keep the default value or only pass a
# value of 3.4.0 or lower.

cmake_minimum_required(VERSION 3.4.1)

set(CMAKE_VERBOSE_MAKEFILE on)

#C 的编译选项是 CMAKE_C_FLAGS
# 指定编译参数,可选
SET(CMAKE_CXX_FLAGS "-Wno-error=format-security -Wno-error=pointer-sign")

#设置生成的so动态库最后输出的路径
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/../jniLibs/${ANDROID_ABI})

add_library( jni_rfid_driver
             SHARED
             src/main/jni/libjni_rfid_driver.c)

target_link_libraries( jni_rfid_driver
                       log )

修改相应的文件名、及目录即可。

        2.在app/build.gradle添加如下代码,在android节点下:

         

    externalNativeBuild {
        cmake {
            cppFlags "-fexceptions -frtti"
            cppFlags "-std=c++11"
        }
    }
    //multiDexEnabled true
}
    externalNativeBuild {
        cmake {
            path "CMakeLists.txt"
        }
}

   这样就完成了Cmake的配置了,接下来就是clean project,然后make project即可。

然后就能看到生成的so库文件,如图




版权声明:本文为博主原创文章,未经博主允许不得转载。http://blog.csdn.net/KingOTG/article/details/79651763

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KingOTC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值