对于不会安卓开发的同胞来讲(比如我),想要做一个安卓应用(.apk)使用Qt是一个不错的方法,今天就来聊聊如何使用Qt结合C++写一个安卓应用。
首先我们得拥有一个Qt,我使用的是5.14.2版本的,新版本可直接到qt官网去下载qt.io,老版本的现在qt官网不支持下载了,我直接上链接好了
百度网盘:
链接: https://pan.baidu/s/1ho_-NCYmQP0Hhe1h77rYlA?pwd=kits 提取码: kits
下载完成之后呢运行安装,如果有qt账号呢就直接登录然后Next,没有的话注册一下也是挺快的。
中间会让你选择安装目录,选择安装到你空间比较充足的地方就好了,比较简单就不放图了。点击Next与下一步直到这里把它勾上继续下一步,同意条约......
一直到这样然后呢点击安装即可,其次我们要进行安卓开发起码还需要三个东西:
以下工具实测都与Qt5.14.2兼容
Android SDK:
https://dl.google/android/android-sdk_r24.4.1-windows.zip
NDK:
https://dl.google/android/repository/android-ndk-r21e-windows-x86_64.zip
JDK:
https://download.oracle/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/s/1cCe3Bds8-RdSNi8hPSULfg?pwd=kits
提取码: kits
你也可以自行去网上搜索,但注意Qt对5.5.1版本的gradle兼容性最好,版本过高过低都会报错
下载好这个gradle之后直接把这个压缩包放在
C:\Users\你的系统名\.gradle\wrapper\dists\gradle-5.5.1-bin
这个目录下随机名字的文件夹中 宝子们的这个文件夹里有可能是空的也有可能不是,不用在意,再去qt构建一次就能跑啦
怎么样,有用的话就点赞收藏一下叭,有问题欢迎随时私信讨论交流~