(2022)
In Russian
Здесь приводится пример настройки среды Qt, а также собираемого Qt-проекта так, что при этом не требуется Internet для дальнейшей сборки и разработки. Однако очевидно, что необходимые для этого пакеты первично должны быть получены через Internet и использованы в настройках. Пример дается для : Android 4.4, API Level 19 и гарантирует сборку приложения для подобного устройства в offline (у многих есть старенький аппарат, с которым можно поиграться). Однако в ином случае придется действовать по аналогии, и некоторые шаги следует добавить или переопределить, что учтено в данном документе. К счастью, этих шагов совсем мало.
Также предполагается, что получение из Internet больших объемов данных не представляет для вас проблемы, размеры пакетов не отражены.
Документ состоит из двух разделов:
- Что делать на хосте с Internet доступом.
- Что делать на хосте, где предполагается разработка.
Скачать:
https://disk.yandex.com/d/jRFOSfSsiFaawg
Скачать:
https://disk.yandex.ru/d/DBZo6RiYm6vUUQ
Скачать:
https://disk.yandex.com/d/qSCJM3Xh7DLWnQ
Требуемая система сборки для вышеприведенных (версий) средств разработки - это Gradle 4.6.
Скачать:
https://disk.yandex.com/d/_8lEARjWqPQDNQ
Система Gradle-4.6 работает с Android Gradle Plugin (3.2.0), все компоненты и данные которого, требующиеся при сборке проекта Qt, были отобраны замысловатым путем.
Скачать:
https://disk.yandex.com/d/9AEViv5y5R8-dw
Скачать:
https://disk.yandex.ru/d/PyvQAsYXtZHK4g
Файл AndroidSDK.tgz распаковать в локальную директорию AndroidSDK.
Связка вышеприведенных версий Qt, Qt Сreator, а также целевая платформа, подразумевают, что на хосте разработки должны быть установлены следующие компоненты:
- Android SDK Build-Tools 28.0.3
- Android SDK Build-Tools 29.0.2
- Android SDK Command-line Tools (latest)
- Google USB Driver
- NDK (Side by side) 21.1.6352462
- SDK Patch Applier v4
- Android SDK Platform-Tools
- Android SDK Platform 19
- Android SDK Tools 2.1
Заметьте, что здесь только одна платформа 'Android SDK Platform 19'. Соответствия между версиями Android и Android API Level можно посмотреть здесь:
https://apilevels.com/
Установить требуемую платформу (например, 25) следует так:
cd ...\Sdk\cmdline-tools\latest\bin\
sdkmanager.bat --install "platforms;android-25"
Убедиться, что платформа установлена:
sdkmanager.bat --list_installed
Удалить отныне ненужную платформу 19 (опционально):
sdkmanager.bat --uninstall "platforms;android-19"
- Инсталлировать систему Qt 5.12.xx (qt-opensource-windows-x86-5.12.10.exe) с поддержкой разработки под Android (Android Kits) (android_armv7 etc.).
- Инсталлировать Qt Creator (qt-creator-opensource-windows-x86-4.13.3.exe) в любую директорию.
- Инсталлировать JDK (jdk-8u291-windows-x64.exe) в директорию по умолчанию: C:\Program Files\Java\jdk1.8.0_291.
- Перенести распакованную директорию AndroidSDK c хоста с Internet на хост разработки в директорию X:\AndroidSDK, (где "Х" здесь и далее - целевой том)
- Запустить Qt Creator, открыть вкладку Инструменты/Параметры.../Устройства/Android и заполнить следующие настройки:
Размещение JDK: C:\Program Files\Java\jdk1.8.0_291
Размещение SDK для Android: X:\AndroidSDK\Sdk
После определенной паузы следующие настройки должны быть высвечены автоматически:
Список Android NDK: [ X:\AndroidSDK\Sdk\ndk\21.1.6352462 ]
Путь к Android SDK существует.
Каталог с Android SDK доступен для записи.
Инструменты SDK установлены.
Инструменты платформы установлены.
Инструменты сборки установлены.
Управление SDK работает (для SDK Tools версий не выше 26.х требуется Java только версии 1.8)
SDK платформы установлен.
Если есть значок ошибки на надписи "Установлены все необходимые пакеты для всех установленных профилей Qt", оставьте это в стороне.
Размещение собранного OpenSSL: X:\AndroidSDK\Sdk\android_openssl
Настройки OpenSSL в порядке.
- Нажать "Ok" для сохранения изменений.
- Открыть вкладку Инструменты/Параметры.../Комплекты и убедиться, что для разработки под Android существует следующее:
Комплекты - Android Qt 5.12.xx (android_armv7) Clang armeabi-v7a
Профили Qt - C:\Qt\Qt5.12.xx\5.12.xx\android_armv7\bin\qmake.exe
Компиляторы - Android Clang (C++,arm,NDK 21.1.6352462)
Отладчики - Android Debugger (armeabi-v7a,NDK 21.1.6352462) - Создать новый проект под комплект Android типа android_armv7 (не эмуляция). Запустить сборку и убедиться, что проект НЕ собирается (и это исключительно по причине отсутствия Internet)
- Перейте в директорию сборки проекта (android-build). В файле
android-build/gradle/wrapper/gradle-wrapper.properties
заменить значение:
distributionUrl=gradle-4.6-bin.zip - В директорию
android-build/gradle/wrapper/
поместить файл:
gradle-4.6-bin.zip - Содержимое файла android-build/build.gradle привести к следующему виду:
...
buildscript {
repositories {
maven() {
url "file:///X:/gradle_repo"
}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.0'
}
}
repositories {
maven {
url "file:///X:/gradle_repo"
}
}
...
- Распаковать архив
gradle_repo.tgz
и его содержимое переместить в новую директорию:
X:\gradle_repo - В свойствах системы создать переменную окружения
GRADLE_USER_HOME
со значением X:\gradle-cache:
GRADLE_USER_HOME=X:\gradle-cache - Если вы ранее оставили Android SDK Platform 19, то необходимо в файле
Qt5.12.xх\5.12.xх\android_armv7\src\android\templates\AndroidManifest.xml
из строчки
configChanges="..."
убрать флаг
density
(это ошибка разработчиков)
А если изменили на свой вариант - действуйте по аналогии: из вышеуказанного AndroidManifest.xml уберите те настройки, которые не поддерживаются в конкретном API Level, о чем будет намекающее сообщение при сборке.
После этих операций (если все сделано правильно!) ваш проект должен успешно собираться, подключите устройство и запустите на нем готовое приложение.