怎麼讓qt程序在Android系統上運行

我們都知道支持跨平臺是Qt的特點之一,也是比較重要的特點。最近在學習Qt的開發,就在想,它是怎麼支持跨平臺的呢?我平時的程序都是windows系統下開發和運行,語言用c++。那怎麼把我用c++寫的qt程序運行在android平臺上呢。帶着這個問題,通過查資料,用下面方法實現了跨平臺。(這可能不是唯一的方法,也不一定是最好的方法,只是我找到的方法,記錄學習以一下。)

Qt最大的優勢就是跨平臺,因爲最近在學習Qt,就想把寫的Qt程序移植

一、準備工作

下載並安裝qt for androidQt5.9之前每個版本都對應的編譯環境,所以要下載安卓對應編譯環境的qt版本,比如qt-opensource-windows-x86-android-5.7.0.exe。但現在這些東西資源很難找到了。而在Qt5.9後Qt官方將好多編譯環境放到了一起,只需要安裝對應組件就好,如下圖。

我電腦上裝的是5.7但是我又找不到qt-opensource-windows-x86-android-5.7.0.exe資源,就只好把qt升級到5.12.6了。

下載並安裝android sdk。SDK:(Software Development Kit)軟件開發工具包。android SDK爲開發者提供了庫文件以及其他開發所用到的工具。

下載並安裝android ndk。NDK:(Native Development Kit)跟android SDK差不多也是一個開發工具包,是用來給安卓手機開發軟件用的,但是和SDK不同的是它用的是C語言,而android SDK用的是Java語言,可以支持C++和java之間的通信。

下載並安裝android jdk。JDK:(Java Development Kit) Java語言的軟件開發工具包,Java核心,包括Java運行環境、類庫、Java開發工具,簡單的說JDK就是面向Java開發人員使用的SDK 。

我的jdk、sdk、ndk在android studio下載安裝的,也可以其他途徑下載安裝

下載並安裝apache ant。下載路徑http://ant.apache.org/bindownload.cgi

二、Qt Creator開發環境配置

在qt creator中,工具-》選項。選擇設備,選android選項卡,配置上一步jdk、sdk、ndk如下圖。

 我的這些路徑都是從android studio中project structure->sdk location裏面拷過來的。

配置時應該根據自己實際安裝路徑配置。

配置avd管理器,Start AVD Manager-》Create new Android Virtual Device。可能會出現了No CPU/ABI system image available for this target的問題,如下圖

解決辦法如下:

在Android Studio中安裝與上圖中Target對應的android版本,我的是android 7.1.1如下圖

安裝完成後,再進入qt重新Start AVD Manager-》Create new Android Virtual Device就可以了。

三、新建項目

新建項目,模板選擇android

 

起好名字,後面默認構建套件那裏選擇android

 在設計模式下,拖入一個TextLabel,內容輸入Hello Qt for Android。

保存工程,點擊運行,彈出選擇設備,選取我的小米手機。

點擊運行,手機上出現下圖所示時,點擊繼續安裝。

最後手機上運行效果如下。

 

 

四、遇到的問題以及解決方法

1、構建項目時模板選擇裏面沒有android選項。原因是沒有安裝android組件(Qt5.9以上版本),解決辦法是使用qt安裝目錄下MaintenanceTool.exe添加組件。5.9一下版本需要下載qt for android版本

2、創建android虛擬機器時可能出現No CPU/ABI system image available for this target的問題,解決辦法安裝與上圖中Target對應的android版本。詳見第二部分環境配置。

3、使用時MaintenanceTool.exe需要臨時資料代理庫http://mirrors.ustc.edu.cn/qtproject/online/qtsdkrepository/mac_x64/root/qt/

 

參考文檔:Windows下用QtCreator和C++寫Android程序-上

Qt5.12.2開發Android環境搭建

Qt 維護工具MaintenanceTool.exe 使用 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章