如何用Qt寫一個安卓Android應用

????????對于不會安卓開發的同胞來講(比如我),想要做一個安卓應用(.apk)使用Qt是一個不錯的方法,今天就來聊聊如何使用Qt結合C++寫一個安卓應用。

? ? 首先我們得擁有一個Qt,我使用的是5.14.2版本的,新版本可直接到qt官網去下載qt.io,老版本的現在qt官網不支持下載了,我直接上鏈接好了

百度網盤:
鏈接: https://pan.baidu.com/s/1ho_-NCYmQP0Hhe1h77rYlA?pwd=kits? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 提取碼: kits?
下載完成之后呢運行安裝,如果有qt賬號呢就直接登錄然后Next,沒有的話注冊一下也是挺快的。

中間會讓你選擇安裝目錄,選擇安裝到你空間比較充足的地方就好了,比較簡單就不放圖了。點擊Next與下一步直到這里把它勾上繼續下一步,同意條約......

一直到這樣然后呢點擊安裝即可,其次我們要進行安卓開發起碼還需要三個東西:

以下工具實測都與Qt5.14.2兼容

Android SDK:

https://dl.google.com/android/android-sdk_r24.4.1-windows.zip

NDK:?

https://dl.google.com/android/repository/android-ndk-r21e-windows-x86_64.zip

JDK:

https://download.oracle.com/otn/java/jdk/8u202-b08/1961070e4c9b4e26a04e7f5a083f551e/jdk-8u202-windows-i586.exe?AuthParam=1738181121_cd654273f9ab495d49eb58298805a5b2

JDK高于Java8會導致不兼容,如果已經有安裝過JavaJDK的寶子們可以打開命令提示符? ? ? (Win+R 輸入cmd)使用指令 java -version查詢當前JDK版本

如當前我的java version是 1.8.0_202 說明是java8版本。?

然后我們將SDK和NDK解壓到隨便哪個目錄只要你記得,比如我把它們解壓到同一個目錄里:

?

然后我們打開sdk文件夾 ,雙擊運行SDK Manager.exe可執行文件

運行之后會彈出這個界面,然后勾選下面這些選項 ,這些選項因為我以前已經下載過了,所以后面的狀態(Status)是Installed,寶子們如果沒下載的話就是Not installed

勾選完成之后我們點擊右下角按鈕 Install packages這時候要是Install按鈕處于不可用狀態,而且左邊文本編輯器中的組件圖標是一個√和一個×說明你沒有給要安裝的插件接受許可協議,只需要點擊接受按鈕就可以了。

ndk不需要執行操作,只要解壓出來就可以了,工具都準備好了然后我們進入Qt新建一個widgets項目

這里就選擇安卓的構建工具就行

?然后一直下一步創建項目,這個時候寶子們應該會報錯,因為我們的工具還沒有與Qt Creator綁定起來,于是我們就可以綁定一下下,選擇項目->manage kits...->設備->Android

這里就可以綁定SDJ,NDK,JDK的路徑了,JDK的路徑會自動綁定你下載的,如果不是也很好找,一般就在C:\program Files(x86)\Java這個目錄下。

至于SDK和NDK直接選擇解壓出來的對應文件夾就好了:

至此環境就搭建好了,寶子們就可以掏出你Android系統的手坤用數據線連接電腦了,然后打開你手機的設置,找到關于本機,再然后連點幾下版本號讓手機處于開發者模式 ,在開發者選項中打開USB調試就OK啦

????????????????????????????????????????????????接下來回到Qt中去,雙擊.ui文件?????????????????????????????????????????然后我們隨便寫點東西進去在手機上看看效果

?

?

????????????????最后在主函數里面添加這三行代碼用來給手機自適應大小:
#if (QT_VERSION >= QT_VERSION_CHECK(5,9,0))    ????????QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
#endif

?????????????????????????????????????????????????????????最后點擊運行!!!

????????

????????選擇你要部署到那臺設備上然后OK,如果是一切順利的情況下,它會自動下載gradle然后你的手機就會提示下載你的項目運行結果這個過程網絡好的話幾十秒就搞定了,我的就正常運行:

????????如果你的編譯器編譯到這一步提示報錯的話,那離成功就差最后一步:手動下載gradle

????????????????????????????????????????????????通過網盤分享的文件:gradle-5.5.1-bin.zip
鏈接: https://pan.baidu.com/s/1cCe3Bds8-RdSNi8hPSULfg?pwd=kits

提取碼: kits?
你也可以自行去網上搜索,但注意Qt對5.5.1版本的gradle兼容性最好,版本過高過低都會報錯

下載好這個gradle之后直接把這個壓縮包放在?

C:\Users\你的系統名\.gradle\wrapper\dists\gradle-5.5.1-bin?

這個目錄下隨機名字的文件夾中?????????寶子們的這個文件夾里有可能是空的也有可能不是,不用在意,再去qt構建一次就能跑啦?

????????????????????????怎么樣,有用的話就點贊收藏一下叭,有問題歡迎隨時私信討論交流~?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/91467.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/91467.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/91467.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

泰語OCR識別技術方案

一、痛點分析1.1 泰語文字特性帶來的挑戰復雜字符集:泰語有44個輔音字母、15個元音符號、4個聲調符號和10個數字,組合形式多樣上下疊加結構:泰文字符常在垂直方向疊加組合,增加分割難度無詞間空格:泰語單詞間無明確分隔…

MER-Factory:多模態情感識別與推理數據集自動化工廠工具介紹

🛠? 工具 如果這個項目對你有幫助,歡迎給 https://github.com/Lum1104/MER-Factory/ 倉庫點一個 Star 🌟 ,這對我們幫助很大 MER-Factory 提供交互式工具來幫助您管理數據和配置處理流水線。 調優儀表板 調優儀表板 是一個基…

Python基礎數據結構詳解:字符串、列表、元組和字典的常用方法

目錄 一、引言:為什么學習這些數據結構? 二、字符串(String)的常用方法 1. 基本操作 2. 查找索引 3. 大小寫轉換 4. 位置調整 5. 開頭和結尾檢查 6. 分割和連接 7. 刪除空白字符 8. 類型判定 9. 替換內容 字符串小結 …

Liunx練習項目5.1-周期化任務;時間同步服務;

1.系統周期化任務1.1 at命令的用法at 時間 指定在規定的時間上執行相應的操作,完成操作crtlD完成編輯一分鐘后輸入的指令完成,創建了file{1..5}的文件at -l 查看系統上面所有用戶的調度at -c 可以查看該任務的指令at -d 加編號可以刪除該任務at -v 可以…

小皮面板搭建pikachu靶場

一、搭建所需的工具 1.下載小皮面板 下載地址為:小皮面板(phpstudy) - 讓天下沒有難配的服務器環境! 2.下載靶場所需的文件 下載地址為:https://github.com/zhuifengshaonianhanlu/pikachu 二、環境的搭建 打開小皮面板,使用所…

使用aiohttp實現高并發爬蟲

使用aiohttp來編寫一個高并發的爬蟲,想法很不錯,現實很骨感。這里我們要知道,由于高并發可能會對目標服務器造成壓力,請確保遵守目標網站的robots.txt,并合理設置并發量,避免被封IP。 我將通過示例代碼&…

【Linux庖丁解牛】— 信號量ipc管理!

1. 并發編程概念鋪墊> 多個執行流【進程】看到同一份資源:共享資源。> 被保護起來的資源叫做臨界資源。> 在進程中,涉及臨界資源的程序段叫做臨界區。【說人話就是程序中訪問共享資源的代碼】> 什么是互斥:任何時刻,只…

Spring Boot全局異常處理詳解

原代碼:package com.weiyu.exception;import com.weiyu.pojo.Result; import com.weiyu.utils.ErrorFileResponseUtils; import jakarta.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import …

FHE技術將徹底改變在線隱私保護方式

1. 在線隱私的簡史 互聯網剛剛誕生時,所有的內容都是未加密的。人們通過一個特定的地址訪問網站,這個地址以“HTTP”開頭。當時,這并不是什么大問題,因為人們在線訪問的都是內容,而這些內容本身已經是公開的。但隨著電…

Cursor配置Java環境、創建Spring Boot項目

一:配置JDK和Maven cursor默認會讀取環境變量JAVA_HOME和MAVEN_HOME,如果沒有配置去找默認路徑~/.m2/settings.xml也可以手動指定:Ctrl Shift P 輸入"Preferences:Open User Settings(JSON)"打開settings.json文件,然…

win11添加無線顯示器(兩個筆記本實現雙屏)

前置條件: 兩個筆記本要要支持無線顯示器,支持藍牙; 1、自己重裝的win11系統,首先根據網上說明進去的時候,紅色顯示無無線投屏; 2、安裝網上操作,查看自己電腦是否支持無線投屏(是支…

【MAC技巧】Bash/Zsh切換失敗的故障排除

【MAC技巧】Bash/Zsh切換失敗的故障排除 Troubleshooting to Failure " chsh: no changes made" By JacksonML 在Mac電腦中,終端(Terminal)是常用的命令行工具,對開發和運維至關重要。 依照蘋果電腦的系統軟件迭代,終端中存有B…

卷積神經網絡-卷積的分類

卷積的定義卷積是圖像處理中最核心的操作之一,其本質是通過卷積核(濾波器)與圖像進行滑動窗口計算(像素值乘積之和),實現對圖像特征的提取、增強或抑制。一、二維卷積--針對二維矩陣進行處理1.1單通道見得最…

全網首發:使用GIT下載時崩潰退出,是因為機械硬盤

前面有幾篇文章,說是GIT下載會退出。開始以為是虛擬機問題。把家里的虛擬機復制到公司,照樣崩潰。后來認為是內存不足。昨天在家里下載代碼,也崩潰退出。心里覺得奇怪,試了一次,還是退出。差別在哪里?之前是…

YAML 自動化用例中 GET vs POST 請求的參數寫法差異

GET 請求:用 params 傳參(附加在 URL 上) config:name: "GET 查詢用戶信息"base_url: "https://api.example.com"teststeps:- name: "根據 userId 查詢用戶信息"request:method: GETurl: /api/user/detailpara…

使用 SeaTunnel 建立從 MySQL 到 Databend 的數據同步管道

SeaTunnel 是一個非常易用、超高性能的分布式數據集成平臺,支持實時海量數據同步。 每天可穩定高效地同步數百億數據,已被近百家企業應用于生產,在國內較為普及。 Databend 是一款開源、彈性、低成本,基于對象存儲也可以做實時分…

linux服務器換ip后客戶端無法從服務器下載數據到本地問題處理

服務器換ip后客戶端無法從服務器下載數據到本地,根據上圖提示,讓用戶清理下~/.ssh/known_hosts文件,下載恢復正常。

從0到1實現Shell!Linux進程程序替換詳解

目錄從0到1實現Shell!Linux進程程序替換詳解 🚀引言:為什么進程需要"變身術"?一、程序替換:進程的"換衣服"魔法 🔄1.1 什么是程序替換?1.2 程序替換的原理:內存…

暑期算法訓練.2

目錄 6.力扣 11.盛水最多的容器 6.1 題目解析: 6.2 算法思路: 6.2.1 暴力解法: 6.2.2 優化算法: 6.3 代碼演示: ?編輯 6.4 總結反思: 7.力扣 611.有效的三角形個數 7.1 題目解析: 7.2…

華為OD 消消樂游戲

1. 題意 游戲規則:輸入一個只包含英文字母的字符串,字符串中的兩個字母如果相鄰且相同,就可以消除。 在字符串上反復執行消除的動作,直到無法繼續消除為止,此時游戲結束。 輸出最終得到的字符串長度。 輸入 輸入原始…