首页| 论坛| 消息

标题:Qt安卓开发经验001-010
作者:liudianwu
日期:2022-04-06 09:09
内容:

项目作品37-安卓综合应用示例 https://qtchina.blog.csdn.net/article/details/123940153
1. pro中引入安卓拓展模块 QT += androidextras 。
2. pro中指定安卓打包目录 ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android 指定引入安卓特定目录比如程序图标、变量、颜色、java代码文件、jar库文件等。
- AndroidManifest.xml 每个程序唯一的一个全局配置文件,里面xml格式的数据,标明支持的安卓版本、图标位置、横屏竖屏、权限等。这个文件是最关键的,如果没有这个文件则Qt会默认生成一个。
- android/res/drawable-hdpi drawable-xxxhdpi 等目录下存放的是应用程序图标。
- android/res/layout 目录下存放的布局文件。
- android/res/values/libs.xml 存储的一些变量值。
- android/libs 目录下存放的jar库文件。
- android/src 目录下存放的java代码文件,可以是根据包名建立的一层层子目录,也可以直接在src目录下。
- 其他目录自行搜索安卓目录规范。
- 后面的说明统一用的android目录举例,其实你可以改成任意目录,比如你的代码目录下是xxoo存放的安卓相关的打包文件,你就写成 ANDROID_PACKAGE_SOURCE_DIR = $$PWD/xxoo 。
3. java类名必须和文件名完全一致,区分大小写。
4. java类必须在android/src目录下不然不会打包到apk文件,可以是子目录比如 android/src/com/qt 。
5. Qt代码中的QAndroidJniObject指定传入的java包名,必须严格和java文件package完全一致,不然程序执行到此处会因为找不到而崩溃。
- android/scr/MainActivity.java 顶部 没有 package 则代码中必须是 QAndroidJniObject javaClass("MainActivity");
- android/scr/MainActivity.java 顶部 package com.qandroid; 则代码中必须是 QAndroidJniObject javaClass("com/qandroid/MainActivity");
- android/scr/com/example/MainActivity.java 顶部 package com.qandroid; 则代码中必须是 QAndroidJniObject javaClass("com/qandroid/MainActivity");
- android/scr/com/example/MainActivity.java 顶部 package com.example.qandroid; 则代码中必须是 QAndroidJniObject javaClass("com/qandroid/example/MainActivity");
- 总之这个包名是和代码中的package后面一段吻合,而不是目录路径。为了统一管理方便查找文件,建议包名和目录路径一致。
6. Qt只能干Qt内部类的事情,做一些简单的UI交互还是非常方便,如果涉及到 ..

回复 发表
主题 版块