Russian Qt Forum
Март 29, 2024, 18:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблемы при сборке приложений на Qt5 под Android  (Прочитано 8143 раз)
Goshman
Гость
« : Декабрь 22, 2015, 19:40 »

Добрый день!

Установил инструменты для сборки по инструкции от Harrix (http://blog.harrix.org/?p=2417)
В итоге имеем:
1 Qt5.5.1 for Android с QtCreator 3.5.1
2 JDK с java 1.8.0_65
3 android-ndk-r10e
4 apache-ant-1.9.6
5 Android SDK со скаченными пакетами под Android 6.0 (API 23), Android 4.0.3 (API 15) и Android 2.3.3 (API 10)

В итоге приложения собираются только под целевую платформу с API 23. При сборке под API 10 и API 15
получаю ошибку
Код:
[aapt] C:\Qt\Projects\And2\armv7\android-build\bin\AndroidManifest.xml:4: error: Error: String types not allowed (at 'configChanges' with value 'orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation').
[aapt]

BUILD FAILED
C:\Android\sdk\tools\ant\build.xml:649: The following error occurred while executing this line:
C:\Android\sdk\tools\ant\build.xml:694: null returned: 1

А приложения, собранные под  API 23, естественно не запускаются на AVD с API 10 и API 15.


Как настроить сборку приложений хотя бы под Android 4.0.3 (API 15)?
Записан
Goshman
Гость
« Ответ #1 : Февраль 06, 2016, 16:47 »

Друзья!

Помогите, плис. Вопрос все еще актуален.

Как собрать приложение хотя бы под Андроид 4.0? Под 6.0 все отлично собирается.
А при сборке с версией ниже пишет:
Код:
Position 48:36-165 : String types not allowed (at 'configChanges' with value 'orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation').

Притом я еще убрал все автоматическое позиционирование. Ни одного лэйаута в проекте нет. И даже ссылки на него.
Записан
Goshman
Гость
« Ответ #2 : Февраль 08, 2016, 17:25 »

В общем причина в строке layoutDirection, которая прописывается в генерируемом файле манифеста.
layoutDirection появился начиная API 19. Отсюда и нежелание собираться.
Файл манифеста править бесполезно. Он при каждой сборке заново создается. Как побороть не придумал.

В итоге снес Qt 5.5.1 и поставил Qt 5.3.2. В ней все ОК с манифестом.

 
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4725



Просмотр профиля WWW
« Ответ #3 : Февраль 08, 2016, 17:31 »

а свой манифест нельзя как-то указать в .pro? чтоб использовался именно он, а не генерировался
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Goshman
Гость
« Ответ #4 : Февраль 08, 2016, 19:00 »

а свой манифест нельзя как-то указать в .pro? чтоб использовался именно он, а не генерировался
Если использовать шаблоны, то файл манифеста цепляется. И его даже можно править в креаторе. Но вот при сборке все равно создается еще 1 файл манифеста в папке build, который каждый раз обновляется. Вот в нем то вся проблема.
Может и есть решение, но я не придумал ничего лучшего как откатиться на более низкую версию Qt.
« Последнее редактирование: Февраль 08, 2016, 19:03 от Goshman » Записан
Goshman
Гость
« Ответ #5 : Февраль 11, 2016, 17:30 »

Кому интересно. Разобрался таки с подключением файла манифеста к проекту.
В *.pro добавляем путь к нему и определяем ANDROID_PACKAGE_SOURCE_DIR

Есть тонкость. Нельзя манифест размещать в папке с исходниками и в папке сборки. Иначе получаете бесконечное вложение папок при компиляции. Я разместил его в папке /android/android-source. В качестве папки сборки указан /android

У меня это выглядит так:
Код:
DISTFILES += \
    android/android-source/AndroidManifest.xml

ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android/android-source

Теперь манифест можно свободно править и иметь всяческие жизненно важные ништяки из него. Перезаписываться при сборке он уже не будет.

Записан
ЙадоФитый ПлюсЧ
Новичок

Offline Offline

Сообщений: 40


Просмотр профиля
« Ответ #6 : Март 09, 2016, 09:42 »

Версия Qt 5.5.1
Выбрал в настройках проекта версию SDK (15), собрал проект, запустил на Android 4.2. Все нормально.

PS: Похоже, что я как-то не так приатачил картинку. Грустный
« Последнее редактирование: Март 09, 2016, 10:00 от ЙадоФитый ПлюсЧ » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 22.