HyperFT项目安卓端的环境搭建及编译的图解教程
一、Android studio 3.5安装详解
1.安装IDE
安装前的准备:已安装过的需要卸载,并且删除C:\user\yourname\ 下.android ,gradle, .AndroidStudio 3个文件夹。
1.1 cmd命令窗口输入ping dl.google.com,得到ip:203.208.40.39,把dl.google.com和dl-ssl.google.com都指向这个IP,具体:打开或新建C:\Windows\System32\drivers\etc 中的hosts文件,在最后增加以下内容:
203.208.40.39 dl-ssl.google.com
203.208.40.39 dl.google.com
修改好hosts文件之后,在cmd命令窗口输入ipconfig /flushdns清除缓存DNS。
1.2访问安卓中文社区官网 https://www.androiddevtools.cn,下载android-studio-ide-191.5791312-windows.exe。安装很简单,直接一路点击下一步即可。
1.3 运行,初次安装会提示未安装Android SDK: 点取消,点No。
2. 安装Android SDK
点击菜单file->Settings,如下图,在SDK Platforms中,选择你想要的版本,点应用,接受,安装。
切换到SDK Tools,按下图选择,点Ok,安装。
二、HyperFT项目的环境搭建
1、HyperFT项目下载
github地址:https://github.com/zeusees/HyperFT
gitee地址:https://gitee.com/huiwei13/HyperFT
通过git方式或者下载压缩包的方式进行项目下载。
2、第三方库下载
opencv:4.1.1
https://github.com/opencv/opencv/releases/download/4.1.1/opencv-4.1.1-android-sdk.zip
ncnn:20190611 bade132
https://github.com/Tencent/ncnn/releases/download/20190611/ncnn-android-lib.zip
三、HyperFT项目编译设置
1、启动AS打开HyperFT的Prj-Android项目
2、项目报错及解决方法
a、项目路径出现中文
打开项目之后报如下错误
错误原因:引用项目的路径中包含中文
解决方法:
把现有的项目路径修改至不包含中文。
b、报NDK错误
编译提示"No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android"
网上也有解决办法,下载旧版的NDK,将其中的toolchain复制到新版的NDK中
但是感觉这种方式,不是解决的正道。
经过对新版NDK的研究,发现NDK的更新记录里有记载
This version of the NDK is incompatible with the Android Gradle plugin
version 3.0 or older. If you see an error like
`No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android`,
update your project file to [use plugin version 3.1 or newer]. You will also
need to upgrade to Android Studio 3.1 or newer.
也就是说新版本的NDK与3.0及以前旧版的Android Gradle plugin插件不兼容
解决方法:修改build.gradle中的红字部分,改为3.1以上版本即可
dependencies {
classpath 'com.android.tools.build:gradle:3.3.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
3、修改CMakeLists.txt文件
cmake_minimum_required(VERSION 3.1)
project(FaceTracking-lib)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp")
include_directories(F:/ncnn-android-lib/include)
include_directories(F:/OpenCV-android-sdk/sdk/native/jni/include)
include_directories(src/main/cpp/include)
set(distribution_DIR ${CMAKE_SOURCE_DIR}/../../../../src/main/jniLibs)
find_library( # Sets the name of the path variable.
log-lib
# Specifies the name of the NDK library that
# you want CMake to locate.
log )
set(DETECTION_FILES mtcnn.cpp)
set(SOURCE_FILES tracking-lib.cpp)
add_library(libncnn STATIC IMPORTED )
set_target_properties(libncnn PROPERTIES IMPORTED_LOCATION F:/ncnn-android-lib/${ANDROID_ABI}/libncnn.a)
add_library(Tracking-lib SHARED ${DETECTION_FILES} ${SOURCE_FILES})
set(OpenCV_DIR "F:/OpenCV-android-sdk/sdk/native/jni")
find_package(OpenCV REQUIRED)
target_link_libraries(Tracking-lib libncnn ${OpenCV_LIBS} z jnigraphics)
将以上代码中的F:/ncnn-android-lib替换成ncnn-android-lib.zip下载解压之后的路径,F:/OpenCV-android-sdk替换成opencv-4.1.1-android-sdk.zip下载解压之后的路径,点击Build->Refresh Linked C++ Project,无报错即可。
4、修改LandmarkTracking.h文件
由于将opencv3替换成最新版的opencv4,源代码LandmarkTracking.h有一下几点需要修改。
a、在tracking_corrfilter函数中存在下图三处地方需要修改
b、在update函数中也存在下图三处地方需要修改
5、修改tracking-lib.h文件
a、在Java_trackingsoft_tracking_FaceTracking_initTracking函数中也存在下图一处地方需要修改
b、在Java_trackingsoft_tracking_FaceTracking_update函数中也存在下图一处地方需要修改
6、编译
完成以上所有操作之后,点击Build->ReBuild Project 即可
编译成功之后便会在Prj-Android\app\build\outputs\apk\debug的路径中生成一个app-debug.apk
zeusee.com 智云视图
HyperFT项目安卓端的环境搭建及编译的图解教程的更多相关文章
- FFMPEG在嵌入式硬件上应用之 —— 基本环境搭建及编译
前段时间在翻看电脑里面资料时,发现了以前做的在嵌入式硬件上面运行以ffmepg为基础,以嵌入式硬件解码的多媒体播放工作,发现都快忘记完了.今日得闲整理温习了一下ffmpeg在嵌入式上的运用,这里给大家 ...
- OSG+VS2010+win7环境搭建---OsgEarth编译
OSG+VS2010+win7环境搭建---OsgEarth编译 转:http://www.cnblogs.com/hnfxs/p/3161261.html Win7下 osg+vs2010环境搭建 ...
- FFMPEG高级编程第一篇:环境搭建及编译
前段时间在翻看电脑里面资料时,发现了以前做的在嵌入式硬件上面运行以ffmepg为基础,以嵌入式硬件解码的多媒体播放工作,发现都快忘记完了.今日得闲整理温习了一下ffmpeg在嵌入式上的运用,这里给大家 ...
- Tesseract环境搭建及编译安装
Tesseract环境搭建及编译安装 Tesseract源码都是C++源码:对于不咋会C++的人来说,这真是...虽然说语言有相通性,但是...哎!!!!! 分享出来,也希望对大家有所帮助. 环境:w ...
- 【转】Linux(ubuntu14.04)上编译Android4.4源码的环境搭建及编译全过程
原文网址:http://jileniao.net/linux-android-building.html sublime text让我伤心.本来很信任sublime text的自动保存功能,之前使用一 ...
- 【Robot Framework 项目实战 00】环境搭建
前言 我们公司在推广RF这个框架做后端接口测试,力求让同事们能更快的完成服务端需求的自动化,作为主导者之一,决定分享一些经验,方便后来者. 我会从安装部署.Request.selenium.自定义框架 ...
- 开源项目学习之------AG-Admin环境搭建
原文地址: https://blog.csdn.net/u011781521/article/details/79056974 一.框架简介 AG-Admin是基于Spring Cloud微服务化开发 ...
- appium移动端自动化测试环境搭建windows-appium-android
第一步:安装jdk 安装jdk(1.7版本以上) 安装完成设置jdk环境变量(百度查询) cmd命令下键入 java -version命令检查jdk是否安装成功且设置环境变量成功,如下图所示: 第二步 ...
- android安卓最新快捷环境搭建(转)
现在很多视频和文章上的安卓环境搭建还是比较老的,挺麻烦.现在写快速方便的搭建: 一.下载JDK: 网址:http://www.oracle.com/technetwork/java/javase/do ...
随机推荐
- web安全常用工具
简单工具:明小子,阿d注入工具,namp,穿山甲,御剑,旁注 漏洞扫描工具:appscan .awvs.nbsi 端口扫描工具:nessus.namp.天镜脆弱性扫描与管理系统 数据库备份工具:中国菜 ...
- vue.js 打包时出现空白页和路径错误
vue-cli输入命令:npm run build 即可打包vue.js的项目 打包出来后项目中就会多了一个文件夹dist,下图为我们打包过后的项目 我们直接运行打包后的文件夹中的index.ht ...
- 英语dialogite红纹石dialogite菱锰矿
红纹石又称菱锰矿(dialogite)属于三方晶系.晶体呈菱面体,通常呈粒状.块状或结核状.玫瑰色,容易氧化而转变成褐黑色.玻璃光泽.解理平行菱面体{1011}完全.硬度3.5-4.5.比重3.6-3 ...
- 基于Spring Boot的注解驱动式公众号极速开发框架FastBootWeixin
本框架基于Spring Boot实现,使用注解完成快速开发,可以快速的完成一个微信公众号,重新定义公众号开发. 在使用本框架前建议对微信公众号开发文档有所了解,不过在不了解公众号文档的情况下使用本框架 ...
- Fundebug前端JavaScript插件更新至1.8.2,修复2个小BUG
摘要: 修复2个BUG,请大家及时更新. Fundebug前端异常监控服务 Fundebug是专业的程序异常监控平台,我们JavaScript插件可以提供全方位的异常监控,可以帮助开发者第一时间定位各 ...
- 用matlab计算线性回归问题
看机器学习的时候遇到的第一个算法就是线性回归,高数中很详细的说明了线性回归的原理和最小2乘法的计算过程,很显然不适合手动计算,好在各种语言都有现成的函数使用,让我们愉快的做个调包侠吧 简单线性回归 R ...
- xadmin引入celery4.0执行异步任务与定时任务
一.安装 pip install celery pip install django-celery-beat pip install django-celery-results pip install ...
- Centos6.5 下安装 tmux(免编译)
环境:Centos6.5是新安装的,没有安装过其它的软件包.思路是安装epel的源后再安装tmux. yum install epel-release # 安装Linux的 epel 的yum源 yu ...
- windows下apache + mod_wsgi + python部署flask接口服务
windows下apache + mod_wsgi + python部署flask接口服务 用python3安装虚拟环境 为啥要装虚拟环境? 原因1:安装虚拟环境是为了使项目的环境和全局环境隔离开,在 ...
- 排序算法-插入排序(Java)
package com.rao.linkList; import java.util.Arrays; /** * @author Srao * @className InsertSort * @dat ...