一、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 智云視圖
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/89855.html
標籤:C++
