前言
Qt for android 的编译环境网上的教程大多是 Windows 平台下的,或者是 Linux 下通过 Qt Creator 进行搭建。这样以后的编译或者发布都是手动进行的,因需要搭建自动化发布环境,git 提交完代码之后,自动进行编译,编译完成后发布。现将 命令行 搭建 Qt for android 环境的方法记述如下:
设备信息
Debian X64 6GB ROM E5(分配四核心)
以上环境需要大约两小时
1. 系统准备
apt update
apt upgrade
apt install unzip
apt install clang
apt install g++
apt install make
2. 下载文件
- JDK (OpenJDK 8 (LTS)、HotPot、Linux、X64) https://adoptopenjdk.net/releases.html?variant=openjdk8&jvmVariant=hotspot
- Gradle 7.0 https://downloads.gradle-dn.com/distributions/gradle-7.0-bin.zip
- android command line tools (Linux) https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip
- Qt 5.12.3 源代码 https://download.qt.io/official_releases/qt/5.12/5.12.3/single/qt-everywhere-src-5.12.3.tar.xz
3. 创建文件夹
cd /opt
mkdir Qt4Android
cd Qt4Android/
4.将上述下载的四个文件夹复制到刚创建的 Qt4Android 目录下
5.解压
unzip commandlinetools-linux-6858069_latest.zip
unzip gradle-7.0-bin.zip
tar -zxvf OpenJDK8U-jdk_x64_linux_hotspot_8u282b08.tar.gz
tar -xvf qt-everywhere-src-5.12.3.tar.xz
6.安装
/*java*/
export JAVA_HOME=/opt/Qt4Android/jdk8u282-b08/
export PATH=$JAVA_HOME/bin:$PATH
/*gradle*/
export PATH=$PATH:/opt/Qt4Android/gradle-7.0/bin
/*android*/
mkdir androidSDK
cd /opt/Qt4Android/cmdline-tools/bin/
./sdkmanager --sdk_root=/opt/Qt4Android/androidSDK --install "platform-tools" "platforms;android-29" "build-tools;29.0.2" "ndk;21.3.6528147"
/*Qt*/
cd /opt/Qt4Android/
mkdir QtAndroidBulid
cd /opt/Qt4Android/qt-everywhere-src-5.12.3/qtbase/mkspecs/android-clang/
vim qmake.conf
//找到 QMAKE_LINK 所在行在最后加上 -nostdlib++ ,接下来的过程可能需要 1-3 小时或更久视硬件配置而定
cd /opt/Qt4Android/qt-everywhere-src-5.12.3/
./configure -xplatform android-clang -prefix /opt/Qt4Android/QtAndroidBulid/ -disable-rpath -nomake tests -nomake examples -android-ndk /opt/Qt4Android/androidSDK/ndk/21.3.6528147 -android-sdk /opt/Qt4Android/androidSDK/ -no-warnings-are-errors
make -j4
make install
记得执行以下代码测试一下安装的正确性
java -version
gradle -v
若编译成功,可将上述四个压缩包,以及解压出来的 qt-everywhere-src-5.12.3 文件夹删除
7.编译测试
我们将test 项目放到 /opt/temp/test/ 文件夹下
cd /opt/temp/Test/
/opt/Qt4Android/QtAndroidBulid/bin/qmake Test.pro
make -j4
mkdir androidDir
make install INSTALL_ROOT=/opt/temp/Test/androidDir/
/opt/Qt4Android/QtAndroidBulid/bin/androiddeployqt --input android-libTest.so-deployment-settings.json --output androidDir/ android-29 --jdk /opt/Qt4Android/jdk8u282-b08/ --gradle
若看到 BULID SUCCESS,即可在文件夹 /opt/temp/Test/androidDir/build/outputs/apk/debug/ 下看到安装文件