一.安装Android Studio
下载地址:https://developer.android.google.cn/
参考https://blog.csdn.net/qq_33431368/article/details/85009758#t4进行安装,因版本不同,安装界面有一点不同,基本没啥问题。
android-studio/bin/中有个studio.sh,启动即可,之后点安卓图标右键锁定到启动器,以后直接点击桌面左面图标即可。
在settings里如下图示,找到SDK Tools,安装这几个包,不挂vpn的话基本下不动。
CMake的版本选择3.10.2的,个人后面报了版本不匹配的错。
二.设置环境
sudo gedit .bashrc
# 在后面添加
export NDK_HOME=/home/lgy/Android/Sdk/ndk
PATH=$NDK_HOME:$PATH
source ~/.bashrc
三.运行demo
下载ncnn-android-mobilenetssd,并用Android Studio 打开项目。
根据readme的步骤进行即可
1.下载预编译库ncnn-android-vulkan.zip;
2.将ncnn-android-vulkan.zip解压后移至ncnn-android-mobilenetssd/app/src/main/jni/文件夹内;
3.打开上一步jni文件夹内的CMakeLists.txt,修改ncnn-20210525-android-vulkan
,需要与你下载的版本号匹配;
set(ncnn_DIR ${CMAKE_SOURCE_DIR}/ncnn-20210525-android-vulkan/${ANDROID_ABI}/lib/cmake/ncnn)
4.在Android Studio内,点击File>Sync Project with Gradle Flies,会自动下载一些缺少的文件,并构建项目;
5.点击run>run app,会打开模拟的手机界面,稍等便会出现算法检测的界面。
四.问题
1.CMake版本不匹配
CMake '3.10.2' was not found in PATH or by cmake.dir property.
- CMake '3.18.1' found in SDK did not match requested version '3.10.2'.
- CMake '3.19.8' found in PATH did not match requested version '3.10.2'.
安装3.10.2版本即可
2.报错
Cannot build selected target ABI: x86, no suitable splits configured: armeabi-v7a, arm64-v8a
参考https://blog.csdn.net/jiangpeng59/article/details/108759414?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242
打开build.gradle
ndk {
moduleName "ncnn"
abiFilters "armeabi-v7a", "arm64-v8a"
}
在"arm64-v8a"
后添加"x86"
abiFilters "armeabi-v7a", "arm64-v8a", "x86"
3.在Android Studio上打开模拟的手机界面后,不能启动app
undefined symbol: glslang::InitializeProcess()
此问题在ncnn-android-squeezenet项目遇到的,询问了ncnn群里的大佬,说是这个项目存在一点问题,故换了mobilenetssd进行测试。
4.Android Studio上打开的算法界面,选择图片检测时,只有一张
尝试了各种方法:在sdcard下upload图片,打开文件夹复制图片进去,甚至将这张图片删了,把我的图片在该文件夹下改名都不行。
五.在手机上运行
将安卓手机与电脑相连,安卓手机打开调试模式,在Android Studio上 run app,会自动将算法安装在手机上,手机上需要收入密码