HyperFT項目安卓端的環境搭建及編譯的圖解教程

1、Android studio 3.5安裝詳解

1.安裝IDE

安裝前的準備:已安裝過的須要卸載,而且刪除C:\user\yourname\ 下.android ,gradle, .AndroidStudio 3個文件夾。linux

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文件,在最後增長如下內容:android

203.208.40.39 dl-ssl.google.comc++

203.208.40.39 dl.google.comgit

修改好hosts文件以後,在cmd命令窗口輸入ipconfig /flushdns清除緩存DNS。github

1.2訪問安卓中文社區官網 https://www.androiddevtools.cn,下載android-studio-ide-191.5791312-windows.exe。安裝很簡單,直接一路點擊下一步便可。windows

1.3 運行,初次安裝會提示未安裝Android SDK: 點取消,點No。android-studio

 

2. 安裝Android SDK

點擊菜單file->Settings,以下圖,在SDK Platforms中,選擇你想要的版本,點應用,接受,安裝。緩存

切換到SDK Tools,按下圖選擇,點Ok,安裝。app

 

2、HyperFT項目的環境搭建

一、HyperFT項目下載

github地址:https://github.com/zeusees/HyperFTide

gitee地址:https://gitee.com/huiwei13/HyperFT

 

經過git方式或者下載壓縮包的方式進行項目下載。

 

二、第三方庫下載

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

 

3、HyperFT項目編譯設置

一、啓動AS打開HyperFT的Prj-Android項目

 

二、項目報錯及解決方法

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

}

 

 

三、修改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,無報錯便可。

 

四、修改LandmarkTracking.h文件

因爲將opencv3替換成最新版的opencv4,源代碼LandmarkTracking.h有一下幾點須要修改。

a、在tracking_corrfilter函數中存在下圖三處地方須要修改

b、在update函數中也存在下圖三處地方須要修改

 

 

五、修改tracking-lib.h文件

a、在Java_trackingsoft_tracking_FaceTracking_initTracking函數中也存在下圖一處地方須要修改

b、在Java_trackingsoft_tracking_FaceTracking_update函數中也存在下圖一處地方須要修改

 

六、編譯

完成以上全部操做以後,點擊Build->ReBuild Project 便可

 

編譯成功以後便會在Prj-Android\app\build\outputs\apk\debug的路徑中生成一個app-debug.apk

 

 


 

zeusee.com 智雲視圖

相關文章
相關標籤/搜索