没怎么接触过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