網(wǎng)站開發(fā)哪里關(guān)鍵詞搜索技巧
這里寫自定義目錄標(biāo)題
- 安裝Qt Creator & Qt
- 安裝下載&安裝JDK
- 設(shè)置Android SDK
- Android模擬器下載
- 創(chuàng)建android設(shè)備(模擬器)
- Gradle安裝
- 問(wèn)題解決
- 無(wú)法打開安卓模擬器
- Build失敗
- 方案一:不適用Qt自帶SDK管理器(失敗)
- 方案二:利用Android Studio完善開發(fā)環(huán)境
- Debug模式成功,Relase失敗
本文寫于2024年1月21日,此時(shí)筆者查到的教程,都多少有些不夠順暢,有些是不夠詳細(xì),有些是已經(jīng)太久遠(yuǎn),筆者折騰了小半天才配置完成。
為了給有同樣需求的小伙伴節(jié)省時(shí)間,決定把相關(guān)教程更新一下。
文章內(nèi)容主要包括:
- 如何在Qt中配置安卓開發(fā)環(huán)境
- 在墻內(nèi)環(huán)境下,遇到過(guò)哪些問(wèn)題,最終如何解決的
- 無(wú)法成功打包的問(wèn)題
開發(fā)環(huán)境:
安裝Qt Creator & Qt
這一步筆者就不詳細(xì)介紹了,只是強(qiáng)調(diào)筆者安裝版本如下:
另外,筆者在Qt Creator 12 + Qt 6.6.0環(huán)境下也完成過(guò)配置,不過(guò)Qt版本又額外下載并使用了Qt 6.2.4
安裝下載&安裝JDK
下載并安裝JDK17(筆者嘗試過(guò)JDK21,印象中會(huì)出問(wèn)題)
https://www.oracle.com/java/technologies/downloads/#java17
打開installer開始安裝,記得記住安裝路徑:
現(xiàn)在可以在Qt Creator中配置JDK了,打開“工具”->“外部”->“配置…”
選擇“設(shè)備”->“Android”->JDK位置,通過(guò)“瀏覽”按鈕,將JDK位置設(shè)置為剛剛安裝的JDK路徑
設(shè)置Android SDK
Qt本身帶了配置Android SDK的工具的,配置JDK位置的圖中,下面一行就是Android SDK,這里的路徑可以不做修改,直接點(diǎn)擊“設(shè)置SDK”按鈕,會(huì)提示“是否下載并安裝安卓SDK到xxx路徑”,點(diǎn)擊是即可開始下載安卓SDK
之后會(huì)提示:“確實(shí)安卓SDK所必要的包,是否安裝缺失包”,點(diǎn)擊“確認(rèn)”
跳出安卓SDK管理器后,所有的都點(diǎn)“是”,就開始安裝了(到這里都不需要梯子)
安裝完成后,會(huì)自動(dòng)開始設(shè)置安卓OpenSSL,這里基本都會(huì)失敗,而且是可選項(xiàng),可以直接取消掉。
當(dāng)然也可以去這個(gè)Github項(xiàng)目把代碼拉下來(lái),然后把OpenSSL二進(jìn)制位置設(shè)置為項(xiàng)目根目錄。
Android模擬器下載
安裝Android后,還缺少Android模擬器。這個(gè)也可以直接在SDK管理器中安裝:
在“工具”一欄往下拉就能找到“Android Emulator”點(diǎn)擊安裝即可:
之后重啟Qt Creator,應(yīng)該就在“構(gòu)建套件”中看到安卓套件了
創(chuàng)建android設(shè)備(模擬器)
在“設(shè)備”->“設(shè)備”中,點(diǎn)擊“添加”按鈕來(lái)添加新的設(shè)備
設(shè)備類型當(dāng)然選擇Android設(shè)備:
這個(gè)時(shí)候可能會(huì)提示“無(wú)法為xxx創(chuàng)建AVD,請(qǐng)先從SDK管理器標(biāo)簽中安裝系統(tǒng)鏡像”
這個(gè)警告的原因是模擬器的Android版本比較低,我們只安裝了Android 12.0,可能與模擬器不匹配。
我們可以回到Android SDK管理器(參考模擬器安裝),安裝Android 10.0(Q):
之后再去創(chuàng)建設(shè)備,即可創(chuàng)建成功
Gradle安裝
到這一步,我們可以去嘗試在Qt Creator中創(chuàng)建Android項(xiàng)目了:
創(chuàng)建項(xiàng)目,選擇“Application(Qt)” -> “Qt Widgets Application” -> “選擇”
隨便起一個(gè)喜歡的項(xiàng)目名稱,然后一直點(diǎn)擊“下一步”到構(gòu)建套件(Kit)
選擇“安卓 Qt 6.4.3 Clang x86_64”套件,然后完成創(chuàng)建
此時(shí)如果點(diǎn)擊左下角“運(yùn)行”,會(huì)出現(xiàn)如下錯(cuò)誤:
這個(gè)錯(cuò)誤是下載gradle失敗造成的,相信國(guó)內(nèi)安卓開發(fā)同學(xué)不是第一次遇到了。
我們直接去這個(gè)地址:https://services.gradle.org/distributions/
下載需要的gradle,從錯(cuò)誤信息中可以看到,是"gradle-7.4.2-bin.zip"
如果像上圖所示,點(diǎn)擊過(guò)“運(yùn)行”按鈕,那你應(yīng)該可以在“C:\Users\xxx.gradle\wrapper\dists”中找到“gradle-7.4.2-bin”目錄,其中有一個(gè)一長(zhǎng)串字符組成的文件夾。
我們把下載好的gradle-7.4.2-bin.zip”直接移動(dòng)到這個(gè)文件夾中(不用解壓)
復(fù)制完成后,再次點(diǎn)擊運(yùn)行,理論上可以正常運(yùn)行
問(wèn)題解決
無(wú)法打開安卓模擬器
這里如果出現(xiàn)無(wú)法打開模擬器的情況,可以去“啟動(dòng)或關(guān)閉Windows功能”
查看Windows的Hyper-V服務(wù)是否已經(jīng)打開
Build失敗
到這一步,Qt開發(fā)Android的配置已經(jīng)完成了,可以成功運(yùn)行起來(lái)了嗎?
答案是不能:
各種查找解決方案,找到如下可能的解決方案:
- 方案一:不要使用Qt自帶的SDK管理器,來(lái)源
- 方案二:問(wèn)題出在墻上,需要通過(guò)android studio協(xié)助
我們分別嘗試:
方案一:不適用Qt自帶SDK管理器(失敗)
只有一個(gè)地方似乎提到似乎是Qt自帶安卓SDK管理器的問(wèn)題……
本以為直接使用Qt自帶的SDK管理器能方便些,結(jié)果還是有坑
那么我們嘗試使用其他教程中提到的SDK Manager重新安裝Android SDK吧…,下載地址:https://www.androiddevtools.cn/
利用這個(gè)SDK Manager下載Android SDK和NDK等組件,但結(jié)果還是不行,報(bào)錯(cuò)也還是一樣
方案二:利用Android Studio完善開發(fā)環(huán)境
配置過(guò)Android Studio的朋友,看上面的報(bào)錯(cuò)信息估計(jì)會(huì)有些眼熟,看上去像是墻造成的連接失敗。
于是筆者按照之前配置Android Studio的經(jīng)驗(yàn),完成Android開發(fā)環(huán)境的配置。(主要是解決gradle-8.2-bin.zip
下載失敗的問(wèn)題,以及梯子的問(wèn)題)
配置完成后,重啟計(jì)算機(jī),再次打開Qt,就可以順利運(yùn)行起來(lái)了。
Debug模式成功,Relase失敗
在Debug模式下,成功 運(yùn)行起來(lái)之后,改成Release模式卻失敗了,報(bào)錯(cuò)如下圖:
看報(bào)錯(cuò)信息Failed to collect certificates from xxx
,應(yīng)該是和簽名有關(guān)。
又去查了Qt中如何配置簽名,找到了如下解決方案:
- 選擇“項(xiàng)目”,找到對(duì)應(yīng)套件的“構(gòu)建”部分,往下拉到“構(gòu)建APK”部分,展開詳情,里面有證書相關(guān)
- 點(diǎn)擊“創(chuàng)建”,開始創(chuàng)建簽名
- 填寫紅框中必要信息,然后點(diǎn)擊創(chuàng)建即可
- 有了簽名后再運(yùn)行就可以成功了