NDK编译C++源码生成Android平台so文件(opencv_android)

 1.准备CPP文件

NDK编译C++源码生成Android平台so文件(opencv_android)_第1张图片

 编写CMakeLists.txt

编写 mk文件

NDK编译C++源码生成Android平台so文件(opencv_android)_第2张图片

 NDK编译C++源码生成Android平台so文件(opencv_android)_第3张图片

android-8 is unsupported. Using minimum supported version android-16

 APP_PLATFORM android-16 is higher than android:minSdkVersion 1 in ./AndroidManifest.xml

修改Application.mk中的APP_PLATFORM为 android-21 

NDK编译C++源码生成Android平台so文件(opencv_android)_第4张图片

builg.gradle添加原生编译路径

NDK编译C++源码生成Android平台so文件(opencv_android)_第5张图片 NDK编译C++源码生成Android平台so文件(opencv_android)_第6张图片

 NDK编译C++源码生成Android平台so文件(opencv_android)_第7张图片

出现gnustl_static不支持错误

 修改c++_static重新编译

NDK编译C++源码生成Android平台so文件(opencv_android)_第8张图片

 成功生成so库

同时生成armeabi-v7a 与arm64-v8a 

 生成所有平台: APP_ABI := all 

ndk-build -B 重新编译

NDK编译C++源码生成Android平台so文件(opencv_android)_第9张图片

android stduio编译工程注意事项

cmake版本 3.6

NDK编译C++源码生成Android平台so文件(opencv_android)_第10张图片

 NDK编译C++源码生成Android平台so文件(opencv_android)_第11张图片

Gradle版本5.6.4  插件版本: 3.2.1 

NDK编译C++源码生成Android平台so文件(opencv_android)_第12张图片 NDK使用19

NDK编译C++源码生成Android平台so文件(opencv_android)_第13张图片 JDK使用11

NDK编译C++源码生成Android平台so文件(opencv_android)_第14张图片 切换调试运行指定示例

NDK编译C++源码生成Android平台so文件(opencv_android)_第15张图片 使用OpenCV NDK编译C++源码生成Android平台so文件(opencv_android)_第16张图片

 真机无法安装解决

 android.injected.testOnly=false

NDK编译C++源码生成Android平台so文件(opencv_android)_第17张图片

 修改后成功安装

NDK编译C++源码生成Android平台so文件(opencv_android)_第18张图片

NDK编译C++源码生成Android平台so文件(opencv_android)_第19张图片 

NDK编译C++源码生成Android平台so文件(opencv_android)_第20张图片 

NDK编译C++源码生成Android平台so文件(opencv_android)_第21张图片 

 NDK编译C++源码生成Android平台so文件(opencv_android)_第22张图片

NDK编译C++源码生成Android平台so文件(opencv_android)_第23张图片 

 

 

你可能感兴趣的:(OpenCV,android,opencv_android)