为了学吉他,本博主用C#开发了一个吉他指板音名训练器 ,奈何PC版不能随时随地记忆指板音,要开发一个安卓版才能满足当下人的现实需求哇!用Java或Kotlin开发安卓App固然好,但本王不想学,只能研究用Qt去开发一个安卓版的App,那么话不多说咱们开动吧。
1. Windows 10 (专业版)
2. Qt5.14.2 ( qt-opensource-windows-x86-5.14.2.exe )
3. JDK 8.0 ( jdk-8u321-windows-x64.exe )
4. Andriod SDK Tools ( installer_r24.4.1-windows.exe )
5. Andriod NDK ( android-ndk-r20b-windows-x86_64.zip )
为什么要选择5.14.2,因为本人用的Visual Studio版本为VS2017,这个版本支持VS2017,然后他是一个可以离线安装的版本,5.15以后目前只支持在线安装。
安装Qt5.14.2的时候,选中Andriod,并且要选中MinGW,至于32/64位或者都选上,要根据你的需求,我这里只选择了64位。
启动Qt后菜单:"工具/选项/Kits" 应该是这么个状况,先不管他,往下一节看。
"工具/选项/设备/Andriod" 应该是这么个状况,先不管他,往下一节看。
本文选择了Java 8.0版本,下表为Android各版本对应JDK版本,因此我们将来要安装的安卓SDK不能低于6.0。
安卓平台版本 | 版本名称 | 安卓SDK版本 | 市场占有率 | JDK版本 |
---|---|---|---|---|
2.3.3 - 2.3.7 | Gingerbread | 10 | 0.4% | 6 |
4.0.3 - 4.0.4 | Ice Cream Sandwich | 15 | 0.5% | 6 |
4.1.x | Jelly Bean | 16 | 2.0% | 6 |
4.2.x | Jelly Bean | 17 | 3.0% | 6 |
4.3 | Jelly Bean | 18 | 0.9% | 6 |
4.4 | KitKat | 19 | 13.4% | 6 |
5.0 | Lollipop | 21 | 6.1% | 7 |
5.1 | Lollipop | 22 | 20.2% | 7 |
6.0 | Marshmallow | 23 | 29.7% | 8 |
7.0 | Nougat | 24 | 19.3% | 8 |
7.1 | Nougat | 25 | 4.0% | 8 |
8.0 | Oreo | 26 | 0.5% | 8 |
Java Downloads | Oracle
WIN+R调出命令行,输入Java -version,如果输出版本信息说明安装成功,直接去看SDK安装一节。
2.4 如果没有输出版本信息,就要进行环境变量设置。
2.4.1. windows设置/系统/关于/高级系统设置/环境变量
2.4.2 系统变量/新建/CLASS_PATH
值: .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
2.4.3 系统变量/新建/JAVA_HOME
按照你Java安装的实际路径进行填写。
2.4.4 系统变量/Path
按照你的实际路径添加jdk的bin文件夹路径。
本篇选择的版本为 r24.4.1,请从一下地址下载并安装。
国内安卓SDK Tools下载地址
安装完成后会自动打开SDK Manager.exe。此时是默认以管理员身份打开的,如果后续需要自己打开,切记要用管理员身份打开,否则可能会直接显示下载安装失败。
根据JDK安装节的“2.1 版本选择”,安卓6.0目前占有率最高,要开发基于安卓6.0的App,Tools下我们选择23版的SDK,至于最上面几项中,包括了最新的29版SDK是由系统默认选中的,咱们不去动他。
由于上面选择了29.0.3和23.0.3版本的Build-tools,那么下面的也选择与之对应的API 29组和API 23组 。其他版本都看你个人兴趣,我是把多余的勾去掉了,比如默认选中的“Andriod R(API 29,R preview)”.
点击右下角“Install xxx packages”,弹出以下对话框,依次选中各根节点并单击右下角“Accept License”后才能正式开始安装,以下步骤可能会出现下载失败的情况,可以尝试再次安装,知道全部安装成功。
管理员权限打开AVD Manager.exe,点击Create按钮创建虚拟安卓设备,参数如下:
根据你的Qt版本,去这个网址查看你需要的NDK版本,比如你的Qt版本是5.14.2,那么你去Qt 5.14 Tools and Versions - Qt Wiki,如果你的版本是5.12.11,那么你去Qt 5.12 Tools and Versions - Qt Wiki。然后CTRL+F在网页上搜索ndk关键字可以看到,需要的ndk版本是r20。
去NDK 下载 | Android NDK | Android Developers下载对应的ndk版本,解压后放到一个路径字符串中没有空格的路径下,比如C盘根目录。
前面几节安装和配置完毕后,是时候配置Qt环境了。
1. 打开Qt 菜单:工具/选项/设备
2. 分别设置JDK路径,Andriod SDK路径,Andriod NDK路径。
3. 此时下方SDK Manager就会出现我们前面安装的SDK版本,单击Ok,再重新打开本页面。此时Kits里面的“构建套件”已经多了一项 Android for armeabi-v7a,arm64-v8a,x86,x86_64 (Clang Qt 5.14.2 for Android),至此Andriod开发环境就搭建完毕了。
由于AVD Manager太难用了,参考:每木昔月的博客-qt 安卓虚拟机 的做法真的好用,其过程如下:
1. 安装逍遥模拟器并启动
逍遥安卓模拟器-官网
2. 找到...\Android\android-sdk\platform-tools目录,在地址栏敲cmd回车,输入adb connect 127.0.0.1:21503
3. Qt编译并调试运行
4. 选择刚连上的逍遥模拟器作为调试工具
5. 成功运行安卓版Guitar Tone Trainer。
所以说,学个吉他真不容易!
问题:
若出现以下编译错误,是build-tools 28.0.3没有安装,因此我们需要再返回SDK Manager.exe中,去安装它。
Could not determine the dependencies of task ':compileDebugJavaWithJavac'.
> 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
解决:
用管理员权限打开SDK Manager.exe,单独勾选28.0.3 版本的Andriod SDK Build-tools进行安装。
添加Android图标及横屏操作