可以先根据这个网址https://blog.csdn.net/u013816798/article/details/86326306

基于Qt平台开发安卓应用

下载其收集到的软件

1.    Qt for Android环境搭建

1.1    打包需要的工具

1.2   JDK安装

如果之前配置过,就可以跳过这一步。

下载java jdk 64:java jdk 1.8 x64

下载java jdk 32:java jdk 1.8 x86

Java jdk 1.8 官网:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

配置系统环境变量:

变量名:JAVA_HOME

变量值:C:\Program Files\Java\jdk1.8.0_144

变量名:CLASSPATH

变量值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

注意%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar前面还有一个.;

在Path变量名中添加变量值:%JAVA_HOME%\bin

配置图示:

1.3      Android SDK安装

Android sdk配置最方便的方法是下载一个Android Studio,然后安装它,它提供了sdk和adb。

下载地址:

https://dl.google.com/dl/android/studio/install/2.3.3.0/android-studio-bundle-162.4069837-windows.exe

中国官网:http://www.android-studio.org/

安装完毕后,运行程序,他会解压自带的sdk,可以在设置里面更改SDK版本。

还有一种方法是直接下载SDK安装:installer_r24.4.1-windows.exe,运行安装目录下面的“SDK Manager.exe”,然后勾选安装,在方框的前两个中是必选的,之后的Build-tools最好是选择对应版本。对于安卓的版本我这里安装的是Android 8.0 (API 26)以上,你们可以自行选择。SDK下载完成后会占用较大的硬盘空间,请将其安装在空间充足的盘符中。(sdk下载安装需要比较长时间,如果网速快还好,否则要等好久)

sdk安装目录最好不要放在有空格的目录下,比如C:\Program Files (x86), 不要放到这种有空格的目录,因为下方需要拷贝NDK到该目录,后面用QtCreator时如果目录有空格会提示Android ndk install into a path without spaces。故最好放在一个没空格的目录,我是放在:D:\Andriod下

安装完毕后,如下图目录所示,找到SDK安装目录下面的“platform-tools”目录,把此目录的路径“..\platform-tools”添加到系统环境变量中。

sdk下载完后,还需使用AVD Manager.exe手动创建一个AVD,后面Qtcreator中才会出现这一步,否则即使使用Add按钮也会提示有cannot create a AVD for ABI armeabi-v7a,实际上已经有下载的,欠缺的是要手动创建一个AVD。见下下图。

点开AVD Manager.exe点击Creatr按钮,创建一个AVD。

如果需要在虚拟设备上运行程序,则必须使用镜像armeabi-v7a,否则即使创建成功虚拟设备,起来后也会是一直黑屏。

这个镜像可以通过sdk manager下载。只有Android 7.0才有,7.1也有一个,名字稍有不同,再往上版本就没有这个镜像了,我试了8.0,10.0的x86和x86_64,虚拟机起来了,但是一直黑屏。用了7.0的这个镜像并且要选择安卓手机,如果选择手环那些也是一直黑屏,不知道为什么。

创建好虚拟设备后,需要先运行虚拟设备。然后再编译代码,编译的时候会提示你选择挂载的设备,选择刚创建的虚拟设备,编译后,运行,会自动在虚拟设备上运行你的程序。下图是运行起来的虚拟设备。

1.4      Android NDK安装

Android NDK 提供一组随新的 Android API 级别后续发布而逐渐增加的原生标头和共享库文件。

Android NDK 是在SDK前面又加上了“原生”二字,即Native Development Kit,因此又被Google称为“NDK”。

Android程序运行在Dalvik虚拟机中,NDK允许用户使用类似C / C++之类的原生代码语言执行部分程序。NDK包括以下方面:

1、从C / C++生成原生代码库所需要的工具和build files。

2、将一致的原生库嵌入可以在Android设备上部署的应用程序包文件(application packages files ,即.apk文件)中。

3、支持所有未来Android平台的一系列原生系统头文件和库。

ndk_r9d:      http://dl.google.com/Android/ndk/android-ndk-r9d-windows-x86.zip

ndk_r11c:       http://dl.google.com/android/repository/android-ndk-r11c-windows-x86.zip

最新版:       https://developer.android.google.cn/ndk/downloads/ (我使用的!)

注意:我刚开始也使用了r11c的版本,但是编译会出错,建议选择最新版本的!

解压下载好的ndk,将其与sdk置于同一级目录下即可。

1.5      Apache Ant安装

Apache Ant,是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。由Apache软件基金会所提供。

Android ant下载官网:http://ant.apache.org/bindownload.cgi

在这里我采用的是目前来说 最新版的 ant1.10.5:

http://mirror.bit.edu.cn/apache//ant/binaries/apache-ant-1.10.5-bin.zip

然后解压出来置于sdk同一级目录,将..\apache-ant-1.10.5\bin添加到系统环境变量Path中。

1.6      QT软件包以及Qt Creater安装

对于QT的版本,我这里使用的是最新的5.12版本(带QT Creater5.12)

下载:http://download.qt.io/archive/qt/5.12/5.12.0/

安装可参考:https://blog.csdn.net/gaojixu/article/details/82185694

2. HelloQtOnAndroid实例

2.1   Qt Creater中配置Android

打开Qt Creater,菜单[工具]->[选项]->[设备]-“Android”以及“设备”,填写各项如下:

正确配置应用后,转到“Kits”中可以看到已经可以吧构建Android的套件显示出来了。

之后,点击确定(OK),然后新建项目时选中自己需要的构建套件,可以全部选中用的时候比较方便。

2.2  Qt Creater中新建工程

[文件]->[新建文件或项目],选择Qt Widgets Application,可以看到支持的平台包括:Android设备

设置Qt项目名称为“HelloQtOnAndroid”

下一步… “Select all kits”

下一步… 选择基类“QWidget”

汇总并点击[完成]。

2.3   Qt Creater中项目构建配置

点击[项目],选择Android for armeabi-v7a配置Build

此处如果没有秘钥文件,需要创建秘钥文件和证书,否则直接点浏览选择证书目录。点击create按钮,弹出创建秘钥窗口,其中国家代码需要填对,其他的都可以随便填

点击Save按钮,弹出文件窗口让你选择目录保存。当你选择目录后,会让你输入密码刚才界面上的密码,输入后确认,即显示出保存的证书目录。

执行build…

经历“qmake”-“make”-“make install”-“androiddeployqt”过程!

成功后,在build-HelloQtOnAndroid-Android_for_armeabi_v7a_Clang_Qt_5_12_0_for_Android_ARMv7-Debug

\android-build\build\outputs\apk\debug中找到生成的apk文件,安装测试即可!

编译的时候提示有sdk编译工具没有安装,去Android sdk manager选择对应的sdk build版本下载即可。

Failed to install the following Android SDK packages as some licences have not been accepted.

build-tools;28.0.3 Android SDK Build-Tools 28.0.3

2.4  运行实例

本实例验证一下QT的基本部件在Android上的显示效果。

Android设备安装运行效果显示(我给app换了个好看的ico):

可以看到除个别(如spacer)以及一些复杂的部件外,大多数部件都能在Android端显示出来,但是显示的字体大小等需要进行一定的移动端适配操作。

3. 参考

Qt帮助文档

《Qt On Android核心编程》

http://www.runoob.com/android/android-application-components.html

希望大家能把自己的所学和他人一起分享,不要去鄙视别人索取时的贪婪,因为最应该被鄙视的是不肯分享时的吝啬。

Qt for Android开发入门相关推荐

  1. 《Android 开发入门与实战(第二版)》——6.6节配置改变

    本节书摘来自异步社区<Android 开发入门与实战(第二版)>一书中的第6章,第6.6节配置改变,作者eoe移动开发者社区 组编 , 姚尚朗 , 靳岩,更多章节内容可以访问云栖社区&qu ...

  2. android开发入门_Android开发入门

    android开发入门 Android is an open source, Linux-based mobile operating system. Android was developed by ...

  3. Qt for Android 开发大坑

    Qt for Android 开发大坑 作者: qyvlik Qt 5.5.1 这里说一说比較常见的 Qt 开发安卓的大坑. 希望同学们不要做无谓的挣扎,跳过这些坑. 输入框 首当其冲的是输入框,Qt ...

  4. 《Android 开发入门》我为什么要在Android找工作越来越难的时候开始学习它

    近期一方面是所在的公司招聘Java开发人员很难招到合适的,投简历的人很少:而另一方面,经常听身边的人说Android.iOS方面找工作不好找,特别是没什么经验的,经验比较少的!说是不好找,但在我家所在 ...

  5. Android开发入门 - 简易开心消消乐界面设计

    Android开发入门 - 简易开心消消乐界面设计 第一步,点击File->NEW->new module,进入以下界面,选择第一个,即运行在手机和平板电脑上.点击next. 第二步,在第 ...

  6. Google Android开发入门与实战

    Google Android开发入门与实战 [作 者]靳岩;姚尚朗 [同作者作品] [作译者介绍]  [出 版 社] 人民邮电出版社     [书 号] 9787115209306  [上架时间] 2 ...

  7. 《Android 开发入门与实战(第二版)》——导读

    本节书摘来自异步社区<Android 开发入门与实战(第二版)>一书中的目录,作者eoe移动开发者社区 组编 , 姚尚朗 , 靳岩,更多章节内容可以访问云栖社区"异步社区&quo ...

  8. 《Google Android 开发入门与实战》

    <Google Android 开发入门与实战>(含1张DVD光盘) 市 场 价:¥55 书 号:9787115209306 出版日期:2009 年6月 开 本:16开 页码:340 [内 ...

  9. Android开发入门与实战之Android应用安装卸载

    当一个Android开发者完整的开发完毕一个程序应用软件结束后要进行软件测试,这就是软件测试员的来历,那么在这之前,要进行Android开发应用的安装与卸载. Android开发入门与实战之Andro ...

最新文章

  1. 未来城市的无人机送货系统是怎样的?
  2. 用Xamarin.Forms创建移动应用程序
  3. android-解决 Android N 上 报错:android.os.FileUriExposedException
  4. matlab实现BCC异或,C#编程之C# BCC异或校验法
  5. 我的编程生涯的入门语言 - C语言之学员成绩管理
  6. C#线程使用(二)全面总结
  7. Mono Compatibility
  8. python selenium iframe怎么定位_python+selenium四:iframe查看、定位、切换
  9. java 对象列表_Java中的对象列表
  10. 你可能不知道的10个Python Pandas的技巧和特性
  11. IT. IT-hyena成就自我
  12. 红帽yum安装httpd出现错误(This system is not registered to Red Hat Subscription Management. You can use subs)
  13. c语言trunc函数是什么意思,C ++中是否有trunc函数?
  14. html特殊字符p如何屏蔽 asp,利用asp去除html标记的四种方法
  15. 天线年会 闭幕式 ppt_OracleVS谷歌–闭幕式,陪审团审议版权阶段
  16. 《西游记》中师徒四人的形象探究及现实意义
  17. 【精】微信小程序生成二维码海报分享 [原理+源码]
  18. java实现简易计算器,实现加减乘除,括号,算式查错,
  19. 【Ubuntu 16.04中为Chromium、Chrome、Firefox安装Flash播放器插件教程】
  20. 滴滴副总裁叶杰平离职,他是出行巨头的AI掌门人

热门文章

  1. 用一篇文章来彻底搞懂KMP算法
  2. macbook通过usb共享网络给iphone上网
  3. localtime()函数基础使用
  4. Dockerfile实例部署和测试
  5. 新能源发电系统家用储能防逆流监测电表
  6. 如何做好供应商绩效管理?
  7. 李开复先生在清华的演讲[zt]
  8. controller控制器的作用
  9. 【机器学习】<刘建平Pinard老师博客学习记录>梯度下降(Gradient Descent)
  10. 微信小程序认证网络准入认证配置