天天看點

Qt for Android運作第一個程式(QtCreator6.0.1+Qt5.15.2+win10)

 前言

在前一篇文檔中,筆者介紹了Qt6.2.2如何運作android程式,沒有介紹Qt5.15.2的。本篇文檔,簡單介紹下相關問題,大部分都是類似的

一、連接配接手機或android裝置

手機一般都直接使用USB線連接配接PC或筆記本就可以,本次隻是運作一個簡單的示例,直接上USB,就可以

手機或Android裝置連接配接後,選擇檔案

一般去這台電腦(win7上是我的電腦),應該會多出一個圖示,打開可以直接看到裝置中的檔案。我們可以在這裡直接複制或修改裝置中的檔案

若沒有出現,可能是以下原因

1.未安裝裝置驅動

win10一般可以識别常見的硬體,但不少硬體裝置也無法識别,遭到這種情況,解決方法如下

(1)使用第三方手機助手

筆者經常使用的是360手機助手,按照提示操作就可了。安裝完成後,建議删除手機助手,否則可能在開發時,因手機助手占用裝置而無法調試

(2)使用廠家驅動

這個不解釋了,特别是開發闆,都是有廠家支援的

2.主機的USB電源功率不足

可能會有部分當你們,發現連接配接裝置後,每次選擇檔案後,接着跳回充電上。發生這種現象,很可能是USB電源功率不足,如使用了USB加長線,或USB擴充塢上插着多個耗電裝置。筆者建議直接将USB線接入主機上,若使用USB擴充塢,可以考慮使用外置電源。

二、打開調試模式

不同的裝置,打開調試模式的方法不一樣,大部分android手機操作流程如下

1.若是未啟用過開發者模式,在手機設定-關于手機的界面,點選多次版本号5-9下,手機會提示進入開發者模式。根據手機的不同,位置也可能不一樣

2.找到開發者選項,可能在設定-系統、設定-更多中,根據手機的不同,位置也不一樣

打開USB調試開關

注:筆者建議,打開保持喚醒的開關,因為很多裝置關屏後,無法正常編譯或調試

3.打開USB調試後,若主機的adb正在查找,android裝置上會彈出是否允許調試的提示,要選擇同意才行

此時在QtCreator中,應該可以找到android裝置

Qt for Android運作第一個程式(QtCreator6.0.1+Qt5.15.2+win10)

注:截圖是異常狀态,正常狀态是綠色的,而不是紅色的

也可以使用如下指令檢視

adb devices
           

其中adb.exe在commandlinetools-win-6609375_latest/platform-tools目錄下

三、打開示例并運作

任意打開一個Qt for Android支援的示例,選擇好開發套件

Qt for Android運作第一個程式(QtCreator6.0.1+Qt5.15.2+win10)

 切換到項目模式

Qt for Android運作第一個程式(QtCreator6.0.1+Qt5.15.2+win10)

目前大部分android裝置使用arm64-v8a就可了

對時間比較早的android裝置,一般要選用armeabi-v7a,這也是預設選項

若是其他架構的android裝置,請按實際情況選擇 

選擇正确的套件和裝置,直接點運作

Qt for Android運作第一個程式(QtCreator6.0.1+Qt5.15.2+win10)

在編譯輸出界面,可以看到目前進行到哪一步了

Qt for Android運作第一個程式(QtCreator6.0.1+Qt5.15.2+win10)

 若是第一次運作,會出現類似如下界面

Qt for Android運作第一個程式(QtCreator6.0.1+Qt5.15.2+win10)

java會自己聯網下載下傳,但可能要等待一段時間

注:

若等待時間過長,可能是使用的網絡有問題,這時可以嘗試下換成手機熱點,或使用科學的上網方式

若是運作成功,android設定會提示安裝,大部分裝置需要手動選擇安裝

然後就可以看到運作結果了

四、已生成的apk檔案

有小夥伴會問,生成的安裝包在哪?

在編譯輸出目錄的android-build/build/outputs/apk/debug/android-build-debug.apk

預設是apk檔案

若是需要aab檔案,需要在項目中配置下 

Qt for Android運作第一個程式(QtCreator6.0.1+Qt5.15.2+win10)

後記

1.若使用最新版QtCreator,高版本的Qt編譯安卓類似。但若使用較低版本的Qt或android版本低于Android6.0,那就必須配置版本的Qt開發環境

2.筆者不太喜歡新版QtCreator對android裝置選擇的界面,至少加個重新整理,顯示下支援的android架構啊