記錄一下這幾天搭建Qt for Android環(huán)境的坑。
1. Android環(huán)境
根據(jù)Qt官網(wǎng)說明,搭建Qt Android需要一些先決條件,即Android的開發(fā)環(huán)境,主要包括以下內(nèi)容:
其中,需要注意的主要為JDK和Android版本之間的匹配問題??梢灾苯尤ava官網(wǎng)下載JDK,也可以通過Android Studio下載。這里我使用了Android Studio,主要是考慮到后面安裝Android SDK和NDK會更方便一些。
Android Studio安裝好之后,可以通過sdk-manager進(jìn)行SDK和NDK的安裝,如下圖:

sdk-manager.png

SDK.png

NDK
2.Qt環(huán)境搭建
2.1 Qt中添加Android設(shè)備配置
主要包括JDK、SDK路徑的設(shè)置,這里JDK、SDK可以直接使用Android Studio中通過sdk-manager安裝的sdk路徑。也可以通過點擊“設(shè)置SDK”,在左邊選擇的一個空目錄中,進(jìn)行下載SDK和NDK(可能出現(xiàn)網(wǎng)絡(luò)問題,推薦使用Android Studio安裝)。

Android設(shè)置.png
安裝成功后,會出現(xiàn)如下提示:

Android
2.2 kits的配置
Qt for Android的編譯套件推薦通過Qt官方工具安裝,可以找到Qt安裝目錄下的maintaintool.exe工具,選擇"更新和刪除組件“選項,在對應(yīng)的Qt版本下安裝Qt for Android內(nèi)容。
Qt for Android.png
安裝完成之后再打開Qt Creator就可以看的Qt Android 的Kits了。
3. 記一些遇到的問題
3.1 Qt creator設(shè)置中,沒有Android選項
這是由于在較新的Qt creator中,默認(rèn)沒有開啟Android的配置,這是需要在Qt 的plugins設(shè)置中,選中Android.dll,重啟即可。
3.2 qt 部署提示: 當(dāng)前無部署
打開kits,可以看到有個黃色感嘆號,提示未設(shè)置部署設(shè)備。這時可以通過添加AVD虛擬設(shè)備或者連接真機(jī)的方式,之后會自動選擇設(shè)備。注意連接真機(jī)需要開啟USB調(diào)試。
3.3 構(gòu)建時出現(xiàn),Could not resolve all artifacts for configuration ':classpath'錯誤
根據(jù)Qt Forum的回答,可能是JDK版本不匹配的問題,檢查我的版本之后發(fā)現(xiàn)不是這個原因。解決方案如下:
在環(huán)境配置中添加模板,如圖所示位置:

template
之后在build.gradle文件中,修改如下內(nèi)容:
repositories {
// 注釋下面2行
// google()
// jcenter()
// 新增
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
maven{ url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'}
maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
這樣修改以后,可能會出現(xiàn)連接到不安全的庫的錯誤,需要把添加的第二個和第三個內(nèi)容去掉,去掉以后如果出現(xiàn)庫找不到,可以選擇性的把第一個和第二個注釋掉。
3.4 Read timed out和connect timed out
解決方法同3.3。