qt如何编写android程序,如何利用Qt开发Android应用程序
Qt 工具箱是一个使用广泛的跨平台GUI工具箱,可用于 Windows、Linux、Mac OSX 和许多手持平台。QT 具有良好结构化(但灵活)的面向对象的结构、清晰的文档以及直观的 API。
Qt最大的优势就是跨平台,一次性开发的Qt应用程序,可以跑Windows、跑linux、跑MAC……如今移动平台Android操作系统如此火爆,Qt当然不能放过对android的支持,对了,还有iphone/ipad。而且,c++开发者们,想做android开发也不是问题了! 但是目前国内研究qt for android 的人真是太少了,今天我使用的是国外开发者社区分享的资源 :Necessitas
开发环境
Ubuntu 10.04 (sorry,qt for android暂不支持windows下开发)
sun-java6 (sorry,qt for android 1.5 会报错的,只能1.6)
necessitas 资源下载地址:点击跳转到资源下载地址
apache-ant-1.8.0以上版本 :这里提供1.8.2版本资源下载
操作步骤
安装好necessitas qt creator后,创建工程时,会发现多了一个Android选项,自然选择创建Android工程。然后会惊喜的发现,工程目录下多了android文件夹。这也是为什么qt应用程序可以成功的跑在android上的精髓所在,下篇文章再具体分析如何实现的Android的支持……
在Tools-->Options里配置一下android环境变量:
注意:别忘记add上 名为qtonandroid的AVD(模拟器)
然后就可以开始开发Qt应用程序,为了演示,我只是随便写了一点。然后直接点击运行(CTRL+R)。
倘若出现这个错误:
Starting remote process ...
Can't find eu.licentia.necessitas.industrius.example.Yiyaaixuexi process
解决方案是:
在run选项设置Android target SDK 为 android-8
倘若出现错误信息为:
Starting remote process ...
I/Qt JAVA ( 469): surfaceChanged: 480,762
D/dalvikvm( 469): Trying to load lib /data/data/eu.licentia.necessitas.ministro/files/qt/lib/libQtCore.so 0x44ede7e8
D/dalvikvm( 469): Added shared lib /data/data/eu.licentia.necessitas.ministro/files/qt/lib/libQtCore.so 0x44ede7e8
D/dalvikvm( 469): No JNI_OnLoad found in /data/data/eu.licentia.necessitas.ministro/files/qt/lib/libQtCore.so 0x44ede7e8, skipping init
D/dalvikvm( 469): Trying to load lib /data/data/eu.licentia.necessitas.ministro/files/qt/lib/libQtGui.so 0x44ede7e8
D/dalvikvm( 469): Added shared lib /data/data/eu.licentia.necessitas.ministro/files/qt/lib/libQtGui.so 0x44ede7e8
D/dalvikvm( 469): No JNI_OnLoad found in /data/data/eu.licentia.necessitas.ministro/files/qt/lib/libQtGui.so 0x44ede7e8, skipping init
D/dalvikvm( 469): Trying to load lib /data/data/eu.licentia.necessitas.ministro/files/qt/plugins/platforms/android/libandroid-8.so 0x44ede7e8
D/dalvikvm( 469): Added shared lib /data/data/eu.licentia.necessitas.ministro/files/qt/plugins/platforms/android/libandroid-8.so 0x44ede7e8
I/Qt ( 469): qt start
D/dalvikvm( 469): Trying to load lib /data/data/eu.licentia.necessitas.industrius.example.Yiyaaixuexi/lib/libYiyaaixuexi.so 0x44ede7e8
D/dalvikvm( 469): Added shared lib /data/data/eu.licentia.necessitas.industrius.example.Yiyaaixuexi/lib/libYiyaaixuexi.so 0x44ede7e8
I/Qt ( 469): qt start
W/ApplicationContext( 469): Unable to create files directory
D/AndroidRuntime( 469): Shutting down VM
W/dalvikvm( 469): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
E/AndroidRuntime( 469): FATAL EXCEPTION: main
E/AndroidRuntime( 469): java.lang.NullPointerException
E/AndroidRuntime( 469): at eu.licentia.necessitas.industrius.QtActivity.startApplication(QtActivity.java:126)
E/AndroidRuntime( 469): at eu.licentia.necessitas.industrius.QtActivity.Access$000(QtActivity.java:62)
E/AndroidRuntime( 469): at eu.licentia.necessitas.industrius.QtActivity$1$1.run(QtActivity.java:149)
E/AndroidRuntime( 469): at android.os.Handler.handleCallback(Handler.java:587)
E/AndroidRuntime( 469): at android.os.Handler.dispatchMessage(Handler.java:92)
E/AndroidRuntime( 469): at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime( 469): at android.app.ActivityThread.main(ActivityThread.java:4627)
E/AndroidRuntime( 469): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 469): at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime( 469): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
E/AndroidRuntime( 469): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
E/AndroidRuntime( 469): at dalvik.system.NativeStart.main(Native Method)
I/Process ( 469): Sending signal. PID: 469 SIG: 9
解决方案:
这种错误并不是环境配置的原因,而是Qt应用程序本身的设计不符合现有平台工具对android的支持。
比如:label上有中文字符等…… 改用英文字符就可以pass的。
如果你研究出了对中文字符支持的方案,欢迎交流下~~
顺利的话,编译通过后会自动弹出android模拟器,但是初次运行程序会遇到这个问题:
别担心,你可以自己去google market下载MinistroConfigurationTool-1.0.apk 和 Ministro-2.0.apk ,
也可以直接下载我上传到csdn的资源:apk-1 apk-2
adb install 推进安装这两个apk后,再次运行程序,会提示:
安装完成后,再疯狂的启动log之后,就会在模拟器上看到让我们欣喜的qt应用程序了~~哦不,现在是android应用程序了!
顺便提一句:qt应用程序其实被打包成了Yiyaaixuexi-debug.apk ,在工程目录下的android/bin/下。
下图是效果图:
上文详细介绍了开发环境的操作步骤与发生错误的解决方案,整个过程是非常简单。有兴趣详细学习Qt的朋友可以自己在网上查询资料,或者等待我们后续更新。
qt如何编写android程序,如何利用Qt开发Android应用程序相关推荐
- 【微信小程序】利用MPFlutter开发微信小程序
✌ 作者简介:信年✘ ✌,大家可以叫我 ❤信年❤ ,一位精通五门语言的博主 ✌
- [免费专栏] Android安全之利用JDB调试Android应用程序(动态代码注入技术)
也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 Android安全付费专栏长期更新,本篇最新内容请前往: [ ...
- Android Studio 教程:入门开发第一个程序
Android Studio 教程:入门开发第一个程序 2018.09.11 14:30 16005浏览 开发第一应用 可以开发属于自己的应用,是否有点小激动?好吧!让我们开始,首先点击Start a ...
- Qt实战案例(42)——利用Qt实现自定义标题栏功能(自定义最大化、最小化、关闭等功能)
目录 一.项目介绍(为什么要自自定义标题栏功能) 二.项目基本配置 三.UI界面设计 四.主程序实现 4.1 隐藏边框 4.2 设置最大化(还原),最小化,关闭按钮的样式风格 4.3 关闭按钮的实现 ...
- 怎么用python编写个apk_【android】如何利用python做Android项目自动化构建,并一键实现构建结果发送到钉钉通知以及通过二维码下载apk或者其他处理等功能...
今天我们来谈一谈用python做Android项目自动化构建的过程.我们知道在常规的Android开发过程中,开发人员打包的时候需要在Android Studio当中进行,或者通过gradle命令,但 ...
- python开发安卓程序-如何使用python开发android应用
Python是一种面向对象.解释型计算机程序设计语言,其源代码和解释器CPython遵循GPL(GNU General Public License)协议Python语法简洁清晰,特色之一是强制用空白 ...
- python开发安卓程序-如何使用python开发Android手机应用?
在使用python开发android应用之前我们需要准备好环境,环境需要安装PythonForAndroid,然后开始编程,编程时打开eclipse, 创建一个新的android project &q ...
- 如何利用C#开发“通讯录”小程序
本文介绍了数理系15级魏道鑫同学汇报的成果,利用C#开发的通讯录小程序.
- 利用HTML5开发Android笔记(中篇)
资源来自于www.mhtml5.com 杨丰盛老师成都场的PPT分享 一个很简明的demo 可以作为入门基础 学习的过程中做了点笔记 整理如下 虽然内容比较简单 但是数量还是比较多的 所以分了3篇 ( ...
- Android:使用Intellij IDEA开发安卓apk程序HelloWorld
在IDEA中也可以开发安卓程序. 1.安装AndroidSDK 点击File->new project 第一次没有安装过AndroidSDK,会提示你下载安装,点击Install SDK,一路下 ...
最新文章
- 养娃时做过的蠢事,程序员必看!
- c++中const与函数一起用的时候需要注意什么?
- girton college map
- java中常用的一些方法(一)
- 选对论文,效率提升50% | 本周值得读
- JDK14中的java tools简介
- mysql修改字段的顺序_Mysql中如何修改字段的排列顺序?
- 网吧java安装路径,java环境变量配置
- RealFlow翻译教程——海洋波浪
- 手写数字识别代码,可以跑通
- 如何使用SIOS DataKeeper在AWS EC2中配置较少SANSQL Server群集
- LINUX下载编译jpeglib
- python将图片转换成二进制文本逻辑_将python图片转为二进制文本的实例
- 软件无线电波测试软件,SDR软件无线电的测量
- mysql 索引失效的7种情况
- 【学习笔记】市场分析报告的基本框架
- Linux启动过程——EFI
- 秦小明 第七讲 资产定价模型,股票定价
- 机器学习笔记(3.1)
- 线性代数(四)-矩阵分块法