Harrix Блог

  • Списки статей
    • Все статьи
    • IT
    • Qt
    • C++
    • Сложение двух чисел
    • Web программированиe
    • FAQ
    • Latex
    • Установка программ
    • Мифы
    • Видео
    • Про фото
  • Проекты
  • Harrix.org
  • RSS
  • Контакты

Создание простейшего приложение в Qt и запуск его под Android

В статье говорится о том, как создать и запустить приложение в Qt под Android.

24.12.2014 5 комментариев 37 750 просмотров

В статье говорится о том, как создать и запустить приложение в Qt под Android.

Содержание

  • Настройка Qt для программирования под Android
  • Создание проекта
  • Запуск на реальном устройстве
  • Запуск на виртуальном устройстве
  • Пошло что-то не так с запуском на виртуальном устройстве

Настройка Qt для программирования под Android

Об этом вы можете узнать из статьи Установка Qt под Android.

Создание проекта

Создайте новый проект.

2014-12-23_012730

2014-12-23_012744

Задайте папку, где будете хранить проект и имя самого проекта. Не допускайте в пути и имени русские буквы!

2014-12-23_012807

Выберите под какие архитектуры процессоров вы будете компилировать приложение.

2014-12-23_013002

Дальше всё по умолчанию:

2014-12-23_013059

2014-12-23_013105

2014-12-23_013149

Переходим на форму:

2014-12-23_013219

Перетаскиваем на форму кнопку и растягиваем ее.

2014-12-24_000942

Запуск на реальном устройстве

Запускать на реальном устройстве проще, чем на виртуальном. Главное, чтобы вы включили отладку на телефоне, подключили его кабелем к компу, и чтобы на копме были драйвера на ваш телефон (на некоторые телефоны не нужны). Например, для Samsung устройств это делается через установку KIES. В общем, на тему подключения телефона аль планшета к компу для запуска Android приложений написано много статей.

У меня JIAYU G4 (для него дополнительные драйвера, например, не нужны). На разных устройствах разные могут стоят процессоры, и какую архитектуру выбрать не всегда понятно. Покажу, где это искать.

Я подключил телефон к компу. В Qt Creator выбираем первую попавшийся архитектуру.

2014-12-23_014136

И запускаем компиляцию приложения.

2014-12-23_140050

Появится окно выбора устройства для запуска приложения.

2014-12-24_001224

И там видим, что на моем телефоне запустить нельзя, так как на нем можно запускать приложения под архитектуру armeabi-v7a.

Значит, в настройках выбираем компиляцию под armeabi-v7a в режиме Release.

2014-12-23_140734

Запускаем.

2014-12-23_140807

И теперь наше устройство доступно для запуска приложения на телефоне:

2014-12-24_001417

Начнется компиляция apk файла, установка его на телефон и запуск приложения.

2014-12-23_140930

Процесс может быть не быстрым. Если вы увидели это:

2014-12-23_141014

то можете посмотреть, что на телефоне появилось. У меня вот это появилось.

2014-12-23_142528

Мы создали приложение и установили на телефоне! Обратите внимание, что наше приложение немного отличается от того, что мы создали в дизайнере форм по внешнему виду, и будет отличаться от того вида, которое мы увидим, если скомпилируем под Windows.

2014-12-23_141311

2014-12-23_141319

То есть, размеры кнопок и других элементов будут изменены. А чтобы и на компе и на телефоне приложение выглядели одинаково, нужно активно использовать разметку Layout, минимальные размеры компонентов и так далее. Но это уже из области верстки приложений.

Почему так сделано? Почему не компилируется так, чтобы приложение выглядело таким же как и на компе? Потому что Android устройства бывают разными, с разными разрешениями, пропорциями экрана. И жесткие размеры и положения элементов приведут к тому что на многих устройствах приложения не будут влазить в экран. В общем, фигня получится.

Теперь еще один момент. Лично я сохранил проект в папке D:\QtProjects:

2014-12-23_141803

И там появилась после компиляции папка с нашим сгенерированным приложением:
2014-12-23_141858

Зайдем в него и там в папку android-build, а там в папку bin:

И вот наш apk файл. Это и есть приложение под Android, которое вы можете распространять. К сожалению, минус Qt в том, что apk файл получается большим. У нас простое приложение с одной кнопкой весит 7Мб. Но это цена того, что мы создали приложение не в JAVA через Android Studio, например, на через Qt на С++.

2014-12-23_142001

Запуск на виртуальном устройстве

Теперь запустим на виртуальном устройстве. Вот тут нас ждут танцы с бубном.

Щелкаем на кнопку для выбора системы под компиляцию.

2014-12-24_001719

Ждем, когда Qt всё настроит у себя внутри. Если ниже треугольник стал зеленым, то всё в порядке.

Нажимаем на него (на зеленый треугольник).

Если всё скомпилировалось удачно, то появится окно с выбором устройства для запуска приложения. Так как у меня еще и телефон подключен физически, то у меня виден телефон. У вас этого не будет (если только не подключите специально телефон аль планшет).

Выберете наше виртуальное устройство (оно должно быть в разделе Compatiable devises).

2014-12-24_001840

Вот тут могут начать капризы! Если что-то пойдет не так, в процессе компиляции, то надо закрыть виртуальное устройство, возможно и Qt, возможно перезагрузить комп и попробовать скомпилировать и запустить! Возможно надо будет удалить папку с скомпилированным приложением.

Внизу в Qt Creftor стали появляться данные о компиляции и запуске приложения на виртуальном устройстве.

2014-12-23_232815

Внизу справа можно посмотреть на процент компиляции. Процесс не быстрый! Может занять несколько минут!

Если всё пойдет хорошо, то у вас на виртуальном устройстве запустится приложение, и всё будет ok. То есть вы запустили приложением, оно работает, в папке с скопилированным приложением в папке android-build, а там в папке bin найдете apk файл.

2014-12-23_233121

2014-12-23_232830

2014-12-23_233039

Дальнеший же текст предназначет для тех, у кого пошло что-то не так.

Пошло что-то не так с запуском на виртуальном устройстве

Иногда бывает так, что вы запускаете компиляцию вашего приложения, но виртуальное устройство не видится среди доступных:

2014-12-23_020956

Теперь оно в разделе Uncompatiable devises. Если мы по нему дважды щелкнем, то Qt Creator выдаст ошибку «When executing step “Deploy to Android device”»

2014-12-23_023728

Вначале проверьте платформу процессора, под которую вы компилировали, и платформу на виртуальном устройстве. Если они совпадают, то может помочь следующее:

С этой напастью разобраться просто. Идем в папку, где у вас хранится проект.

2014-12-23_150251

И удаляем ту папку, которой соответствует папка с скомпилированым приложением под ту архитектуру у процессора, под которую мы компилировали.

2014-12-23_150321

И пробуем опять запустить.

Итак, вы создали и запустили свое первое Android приложение, созданное на Qt.


Статьи по теме:

  1. Установка Qt под Android
  2. Как добавить иконку в приложение Qt под Android
  3. Как рисовать графики в Qt?
  4. Запуск Qt приложений под Visual Studio .exe вне Qt Creator

IT Android, Qt

© 2014 Harrix