- JNI 打包各种平台so文件配置
在build.gradle
中:
android {
defaultConfig {
externalNativeBuild {
cmake {
cppFlags "-std=c++11"
abiFilters "arm64-v8a", "armeabi", "armeabi-v7a", "x86", "x86_64"
}
}
}
}
如上,在abiFilters
中指定要打包输出的so平台类型即可,注意,这里还我们开发打包apk中的"abiFilters"意义是不一样的,正常开发中指定abiFilters
是指打包apk时只将指定平台的so文件打包进去。
另外,需要注意的是,如果要输出armeabi
平台的so文件,NDK需要降级到17以下。
-
error: use of undeclared identifier 'bzero'
由于NDK17及以上版本不再支持输出armeabi
,没办法,只好将NDK降级到 16版本,结果降级后,立马就编译报错,提示了几个use of undeclared identifier
,查了下,小问题,直接把报错的函数所在的头文件include一下就好,
比如bzero
头文件string.h
,assert
头文件assert.h