Qt Compile Notes for Creator 4.11, Qt 5.14.1 - Vermont-EPSCoR/Macroinvertebrates GitHub Wiki
Getting Started
Qt Android Development Requirements
Qt for Android - Building from Source -- But probably want to download the installer instead
Required Libraries
Gumbo Parser
https://github.com/lagner/QGumboParser
https://github.com/google/gumbo-parser
Qt SVG Add on (Moved out of core modules in 5.14)
Summary:
- Compile Qt SVG Add on
- Cloned from: https://github.com/qt/qtsvg/releases
- Get release for version of Qt being used.
- Used .pro file in git repo to open in Qt and then built release version for Windows MinGW kit
- Install to Qt Environment
- Copied compiled folders (lib, bin, etc.) to QtCreater directory -
C:\Qt\Tools\QtCreator
- Add
svg
to .pro file atQT += core gui network xml svg
SSL (for Android, required with API move to https)
General Instructions
Script for Android Compilation
- Used OpenSSL 1.1.1d
- Needed NDK r21 for Linux to compile SSL for Android (OpenSSL make was configured for Linux)
- Older NDK: https://developer.android.com/ndk/downloads/older_releases
- Finally found success with the compile on Windows 10 using Windows Subsystem for Linux, Ubuntu. Probably would have been quicker just using Linux.
Android Compile Issues
- Android Gradle plugin (3.4.1) and Gradle version (5.1.1) were out of sync.
- Also, needed to add google() repo
- A refresh of the Qt default Android build files fixed both of these issues
- Project... Build... Build Android APK... Create Templates
Misc Tips
An APK is a .zip file...
Tip: Always run gradlew lint (or gradlew.bat lint on Windows) command in the build directory after any Android-related changes and look into HTML report file produced by this tool. It warns about many potential issues and inconsistencies (manifest issues, API version mismatches, invalid and unused resources, localization issues, general programming errors in your Android-related Java code, obsolete dependencies, and so on, and so on). Very useful.
https://doc.qt.io/qtcreator/creator-developing-ios.html#specifying-supported-ios-versions