MyTetra Share
Делитесь знаниями!
Как заставить компилироватья Qt/QML приложения под мобильную платформу при отсутствии интернета
Время создания: 06.04.2018 12:32
Автор: xintrea
Текстовые метки: qt, qml, gradle, arm, компиляция, сборка, интернет, доступ, онлайн, андроид, android
Раздел: Компьютер - Программирование - Язык C++ (Си++) - Библиотека Qt - QML
Запись: xintrea/mytetra_syncro/master/base/1523007154ljpx8zwxho/text.html на raw.github.com

Сборка Qt/QML приложений под платформу Android происходит с помощью утилиты gradle. Проблема в том, что для нормальной работы этой утилите нужен доступ в интернет, чтобы она могла сама скачать нужные компоненты. Кроме того, при каждом запуске утилита хочет проверить в интернете наличие обновлений. И если интернета нет, то утилита работать не будет.


Как же тогда вести разработку на компьютере, если на нем просто нет интернета? Есть обходной путь. Но нужно знать следующее: на момент первой компиляции проекта интернет все-таки должен быть, чтобы gradle скачал нужные файлы. А затем можно сделать следующее.


Предплагается, что уже создан шаблон Android-приложения, и в сырцах есть каталог android, внутри которого лежат исполняемые файлы gradle (для Linux) и gralde.bat (для Windows).

Идея в том, чтобы в опциях запуска Java-кода, которым происходит сборка, добавить опцию --offline.

Для Linux это делается путем добавления такой строки:


APP_ARGS=$(save "$@")


# Add for enable offline mode

APP_ARGS="$APP_ARGS --offline"


# Collect all arguments for the java command, following the shell quoting and substitution rules

eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"



Для Windows в gradle.bat надо сделать то же самое, только с переменной CMD_LINE_ARGS.


Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования