找回密码
 立即注册
收起左侧

第2篇 Qt Quick入门教程之基础(二)搭建Qt Android开发环境

7
回复
983
查看
[复制链接]
累计签到:742 天
连续签到:12 天
来源: Qt教程 2019-2-19 22:31:30 显示全部楼层 |阅读模式



导语

在第一篇文章中我们已经创建了第一个Qt Quick项目,见识了QML程序代码的简约易懂。前面曾提到,Qt Quick就是在移动开发的大背景下应运而生的。为了让广大初学者学习咱们教程更有成就感,对后面的内容能够更加斗志昂扬地学习下去,在进一步讲解QML语法之前,先来和大家一起搭建Qt Android开发环境,让我们以后每个示例程序都可以在桌面和手机上同时运行!

在Qt帮助的Qt for Android页面提供了所有相关内容的介绍,建议大家多看看帮助文档。从Qt 5开始,提供了对Android平台的支持,现在版本的Qt,其编译的程序可以运行在Android 4.1(API Level 16)以上平台中。几乎所有Qt模块都支持Android平台,除了Qt WebEngine、Qt Serial Port和平台特定的一些模块。虽然说Qt Quick更适合开发移动应用,但Qt Widgets项目理所当然也可以在Android上运行,只是效果可能差强人意。

下面开始我们的教程!

设置Android开发环境

要在Qt中进行Android开发,需要使用 JDK、Android SDK 和 Android NDK 三个工具,因为我这里使用的是64位的Win 7系统,所以下载的均是64位版本,下面是下载地址及需要下载的文件,如果大家无法下载,可以到咱们Qt开源社区(www.qter.org)的下载页面进行下载。

  • JDK

地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html

下载文件:jdk-8u201-windows-x64.exe

  • Android SDK

地址:http://dl.google.com/android/android-sdk_r24.4.1-windows.zip

下载文件:android-sdk_r24.4.1-windows.zip

  • Android NDK

地址:https://developer.android.google.cn/ndk/downloads/

下载文件:android-ndk-r16b-windows-x86_64.zip

下载完成后只有 JDK 需要安装,其他两个直接解压缩即可。建议将它们都安装到相同的目录内,比如我这里是D:\Android目录。

安装完成后先运行Android SDK目录下的SDK Manager.exe对Android SDK进行必要的更新。我们选择Tools目录中的Android SDK Tools、Android SDK Platform-tools和Android SDK Build-tools,这三个工具是必须的;最下面Extras目录中的Google USB Driver,这个也是必须的;以及Android 7.0(API 24)目录中的SDK Platform和ARM EABI v7a System Image,这个是根据需要选择的,前者是SDK后者是虚拟机用的镜像文件。如果大家对这个比较熟悉,那么就根据自己的需要来选择,如果不是很了解,就跟我选择一样即可。

选择完成后单击Install 6 packages按钮,这时会弹出Choose Packages to Install对话框,这里需要选中Accept License选项同意协议,单击Install进行安装。

安装完成后,回到Qt Creator选项菜单的Android设备配置界面,指定几个工具的路径。配置好后就会自动设置默认的Android构建套件Android for armeabi-v7a (Clang Qt 5.12.0 for Android ARMv7),我们就可以使用这个来编译Android应用了。

使用虚拟机模拟运行

前面我们下载了镜像文件,下面就先来看看如何在虚拟机上运行Qt Android程序吧。过程比较慢,效果不是很好,大家做个了解即可。

首先运行Android SDK目录下的 AVD Manager.exe,在这里创建一个虚拟设备。单击右侧的Create...按钮打开Create new Android Virtual Device(AVD)对话框,在其中设置AVD Name为myAVD,选择Target为Android 7.0-API Level 24选项,其他可以自行设置。

设置完成后,回到Qt Creator,按照我们上一篇的内容创建helloandroid项目,在选择构建套件时,同时选择上Android套件。

创建好以后,将main.qml内容更改如下:

import QtQuick 2.9
import QtQuick.Window 2.2

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    Text {
        anchors.centerIn: parent
        text: qsTr("Hello Android")
    }

    MouseArea {
        anchors.fill: parent
        onClicked: Qt.quit()
    }
}

这里在界面上添加了Text文本,然后使用MouseArea使得界面可以获取鼠标点击,当鼠标点击后程序退出。具体代码我们在下一篇详细讲解。下面继续教程。

可以先在左下角的目标选择器中将构建套件选择为Desktop版本,按下Ctrl+R快捷键运行一下程序,在以后的开发中一般也是先开发桌面版本,等调试没有问题后再编译到移动平台进行测试。

然后将构建套件选择为Android版本,再次按下Ctrl+R运行程序。这时会弹出Android设备选择对话框,选择前面创建的虚拟机myAVD。

单击OK按钮启动虚拟机,慢慢等待,期待惊喜... ...

部署项目到手机上运行

如果大家亲自测试了虚拟机,我想也一定会很烦躁吧!其实可以使用X86版本的虚拟机,那个会快不少,有兴趣的可以自己尝试一下。不过,还是建议直接将程序部署到手机上进行测试,这个效果更好,而且更真实。

我这里使用的是小米8手机,其系统是基于Android 8.1.0的MIUI 10.0稳定版。要在Qt Creator中将程序部署到手机上运行,需要在手机的开发者选项中开启USB调试。小米8的开启方式是依次选择“设置→更多设置→开发者选项→USB调试、USB安装”,不过需要注意,在MIUI 10.0稳定版中需要进入“设置→我的设备→全部参数”,在“MIUI版本”上多次单击才能进入开发者模式,这样才会出现开发者选项。

当弹出是否允许USB调试的对话框,选择“确定”。然后使用数据线将手机连接到电脑,这时手机端会显示是否允许计算机进行调试,选中“一律允许使用这台计算机进行调试”选项,这样以后就不会再弹出这个提示了。

现在到Qt Creator中再次运行helloandroid程序,在Select Android Device对话框中选择小米8。如果没有出现连接的手机或显示手机不可用,可以单击Refresh Device List按钮来刷新设备。按下OK按钮将程序部署到手机上。

当部署完成时,在手机上可能会弹出是否允许USB安装应用的提示,选择“继续安装”。这时就会在手机上自动运行helloandroid程序,退出程序后可以看到,在手机上安装了一个helloandroid应用。

小结

现在Qt 5已经更新到了5.12版本,对于Android开发环境的配置也已经优化地很好了,可以看到,整个过程还是比较简单的。如果大家配置的环境无法编译运行,一般是使用的工具版本问题,这里的原则是尽量都使用64位的。如果成功配置好了环境,那么我想同学们已经迫不及待地要将Qt示例程序编译运行到手机上测试下效果了吧!希望大家玩的高兴!

期待下一篇文章!




返回目录



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
参与人数 1人气 +2 收起 理由
duliningmissyou + 2 对我帮助很大!

查看全部评分总评分 : 人气 +2

回复

使用道具 举报

累计签到:17 天
连续签到:1 天
2019-2-26 09:56:22 显示全部楼层
yafeilinux 发表于 2019-2-23 12:39
安装Qt的时候选择ARM EABI v7a库;sdk里面下载ARM EABI v7a System Image;创建AVD的时候target选择Andro ...

感谢亚飞,成功了
分享一下
我感觉还是在当初安装时没有选择正确,后来虽然安装了 android-ndk-r16b、android-sdk-windows、jdk-iu201-windows-x64.exe ,按教程配置后,AVD(安卓虚拟机)是灰的,被列在不兼容设备中。后来又安装了android-ndk-r18b,还是不成功
经亚飞提醒后,
我把QT完全卸载了,用的是your uninstaller这个软件
然后下载了 3个G的大包  qt-opensource-windows-x86-5.12.1.exe 进行安装 ,为了稳妥起见安装组件全部选择了。
QT SDK qt-creator-opensource-windows-x86_64-4.8.1.exe 我没有安装,不知有什么问题没有。
1安装完成后还是不成功,检查
工具-选项-Kits-Debuggers 发现 Android Debugger 对应的 Location 的值是 android-ndk-r16b的目录,

工具-先项-设备-Android-Android NDK的路径值 android-ndk-r18b  
不一致,而且无法移除,为稳妥起见,再次卸载QT
然后将android-ndk-r16b的目录删除,android-ndk-r18b的目录保留
再次重新安装,这次 可以了,在Select Android Device窗口中,MyAVD属于兼容设备,显示OpenGL unenbled,点OK,启动myAVD,可以看到载入了项目窗体,但是没有显示 hello Android
回到AVD Manager,选中myAVD,点Edit,选中找到Emulation Options: 选中Use Host GPU,一路OK

然后成功了。

以上分享,给网友提供一条思路
回复 支持 反对

使用道具 举报

累计签到:17 天
连续签到:1 天
2019-2-23 07:33:03 显示全部楼层
然而我在 选择安卓设备 时 ,MyAVD被归到不兼容设备之中,OK是灰的。。

重装了几次android开发包。。。
回复 支持 反对

使用道具 举报

累计签到:742 天
连续签到:12 天
2019-2-23 12:39:28 显示全部楼层
谁啊 发表于 2019-2-23 07:33
然而我在 选择安卓设备 时 ,MyAVD被归到不兼容设备之中,OK是灰的。。

重装了几次android开发包。。。 ...

安装Qt的时候选择ARM EABI v7a库;sdk里面下载ARM EABI v7a System Image;创建AVD的时候target选择Android 7.0-API Level 24;这几个对应一下。
回复 支持 反对

使用道具 举报

累计签到:2 天
连续签到:1 天
2019-3-2 16:13:22 显示全部楼层
你好老师,我按您的教程运行后显示Can't find Ministro Devices怎么解决,困扰我两天了
回复 支持 反对

使用道具 举报

累计签到:2 天
连续签到:1 天
2019-3-2 16:47:13 显示全部楼层
叶脉 发表于 2019-3-2 16:13
你好老师,我按您的教程运行后显示Can't find Ministro Devices怎么解决,困扰我两天了 ...

已经解决了,不用安装ministro,是我安装虚拟环境为了点usb host
回复 支持 反对

使用道具 举报

累计签到:1 天
连续签到:1 天
4 天前 显示全部楼层
配置出问题是怎么回事?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册