Russian Qt Forum
Март 29, 2024, 02:00
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Qt Quick
(Модератор:
navrocky
) >
[РЕШЕНО] Тут кто-нибудь QML Map в Android получал работающую?
Страниц:
1
2
[
3
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: [РЕШЕНО] Тут кто-нибудь QML Map в Android получал работающую? (Прочитано 19777 раз)
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Тут кто-нибудь QML Map в Android получал работающую?
«
Ответ #30 :
Октябрь 30, 2019, 14:07 »
Спасибо, кэп... баг репорт давно открыт, и спрашиваю везде где только возможно. А собирать Qt нет никакого смысла вообще - библиотеки эти есть, и лежат в нужном месте. Почему-то не работает копирование их при сборке проекта. На примере Map Viewer она работает - библиотеки подшиваются. Что сборка Qt изменит? Ничего.
Записан
2^7-1 == 127, задумайтесь...
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Тут кто-нибудь QML Map в Android получал работающую?
«
Ответ #31 :
Октябрь 30, 2019, 14:48 »
У меня есть подозрение, что проблема в том, что в одном приложении активно используется позиционирование и локации в С++ коде, и в QML. На С++ у меня всё отлажено и хорошо работает. Гвоздями намертво прибито, там гамбургер такой, что на QML с ума можно будет сойти если его делать. От QML мне нужна только карта. И тут похоже Qt колдобится, на QT += location positioning он копирует библиотеки С++, а про QML... забывает. Если C++ обработки нет, как в примерах, то он копирует QML библиотеки.
«
Последнее редактирование: Октябрь 30, 2019, 14:59 от Гурман
»
Записан
2^7-1 == 127, задумайтесь...
Old
Джедай : наставник для всех
Offline
Сообщений: 4349
Re: Тут кто-нибудь QML Map в Android получал работающую?
«
Ответ #32 :
Октябрь 30, 2019, 15:15 »
Цитата: Гурман от Октябрь 30, 2019, 14:48
И тут похоже Qt колдобится, на QT += location positioning он копирует библиотеки С++, а про QML... забывает. Если C++ обработки нет, как в примерах, то он копирует QML библиотеки.
Вы в исходники androiddeplotyqt загляните, там будет видно.
Записан
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Тут кто-нибудь QML Map в Android получал работающую?
«
Ответ #33 :
Октябрь 30, 2019, 15:27 »
Цитата: Old от Октябрь 30, 2019, 15:15
Цитата: Гурман от Октябрь 30, 2019, 14:48
И тут похоже Qt колдобится, на QT += location positioning он копирует библиотеки С++, а про QML... забывает. Если C++ обработки нет, как в примерах, то он копирует QML библиотеки.
Вы в исходники androiddeplotyqt загляните, там будет видно.
Ну не сразу... на минуточку 2944 строки. И наверно что это не в самой утилите задаётся, а где-то в конфиге.
«
Последнее редактирование: Октябрь 30, 2019, 15:28 от Гурман
»
Записан
2^7-1 == 127, задумайтесь...
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Тут кто-нибудь QML Map в Android получал работающую?
«
Ответ #34 :
Октябрь 30, 2019, 16:16 »
Упс... есть ещё отличие моего проекта и примеров. Фишка в том, что у меня QML Map используется не в головном проекте, а в subproject, который создаёт shared object. Ну так надо. Разумеется в его файле проекта тоже есть
QT += widgets quick quickwidgets qml network location positioning
И по идее, библиотеки сабпрожектов должны все собираться в одну кучу в каталоге android-build/libs/armeabi-v7a, также как и собираемые библиотеки сабпрожектов (они там и лежат). Но что-то идёт не так.
Записан
2^7-1 == 127, задумайтесь...
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Тут кто-нибудь QML Map в Android получал работающую?
«
Ответ #35 :
Октябрь 30, 2019, 20:18 »
И хакнуть не получается - вручную подтянуть библиотеки.
В проект добавил
Код:
isEmpty(ANDROID_TARGET_ARCH) {
message("Hack not needed")
}else{
POSITIONING_EXTRA_LIBS += $$[QT_INSTALL_QML]/QtLocation/libdeclarative_location.so \
$$[QT_INSTALL_QML]/QtPositioning/libdeclarative_positioning.so
ANDROID_EXTRA_LIBS += $${POSITIONING_EXTRA_LIBS}
LIBS += $${POSITIONING_EXTRA_LIBS}
}
Библиотеки под своими исходными именами приехали в каталог ......./android-build/libs/armeabi-v7a и потом вошли в APK, но не вызываются. При запуске то же сообщение в консоль об отсутствующих плагинах. Тогда добавил строки
Код:
<item>libqml_QtLocation_libdeclarative_location.so:qml/QtLocation/libdeclarative_location.so</item>
<item>libqml_QtPositioning_libdeclarative_positioning.so:qml/QtPositioning/libdeclarative_positioning.so</item>
в шаблон android/res/values/libs.xml. Строки скопировал влоб из сборочного файла libs.xml примера Map Viewer, который у меня собирается и работает. Строки эти появились в сборке .....android-build/res/values/libs.xml Но это ни на что не повлияло вообще. Пока идеи, как вручную подшить эти библиотеки, исчерпаны.
Записан
2^7-1 == 127, задумайтесь...
Old
Джедай : наставник для всех
Offline
Сообщений: 4349
Re: Тут кто-нибудь QML Map в Android получал работающую?
«
Ответ #36 :
Октябрь 30, 2019, 20:28 »
Я бегло пробежался по androiddeployqt...
Как я понял, qml модули для него отбирает утилитка qmlimportscanner.
Попробуйте что она у вас возвращает в основном проекте и в подпроекте с qml.
А вот как изменить ee -rootPath из деплоя пока не понятно.
Может попробовать в основной проект добавить dummy.qml с нужным импортом?
Записан
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Тут кто-нибудь QML Map в Android получал работающую?
«
Ответ #37 :
Октябрь 30, 2019, 20:48 »
Цитата: Old от Октябрь 30, 2019, 20:28
Я бегло пробежался по androiddeployqt...
Как я понял, qml модули для него отбирает утилитка qmlimportscanner.
Попробуйте что она у вас возвращает в основном проекте и в подпроекте с qml.
А вот как изменить ee -rootPath из деплоя пока не понятно.
Попробую завтра. Сегодня уже устал, с утра весь день с этим воевал...
На самом деле интереснее всего понять - какими текстовыми файлами управляются
системные
библиотеки, и как они подшиваются. Я это пытался разобрать. С моими собственными библиотеками проблем нет, у меня их создаётся и в проект включается десяток. Все они ложатся в ......./android-build/libs/armeabi-v7a и оттуда очевидно попадают в APK. Но почему не подшились две системные - мне не понятно.
Цитата: Old от Октябрь 30, 2019, 20:28
Может попробовать в основной проект добавить dummy.qml с нужным импортом?
Это идея интересная. Это завтра первым делом попробую. Хотя то, что карты используются в сабпрожекте, не должно влиять - у меня в других приложениях были кучи обращений к разным системным библиотекам из сабпрожектов, и всё без проблем работало. Правда... ни разу при этом не использовался QML.
Ещё наверно стоит попробовать вручную переименовать эти обе системные, и подшить их как свои, из своих каталогов.
«
Последнее редактирование: Октябрь 30, 2019, 20:53 от Гурман
»
Записан
2^7-1 == 127, задумайтесь...
Old
Джедай : наставник для всех
Offline
Сообщений: 4349
Re: Тут кто-нибудь QML Map в Android получал работающую?
«
Ответ #38 :
Октябрь 31, 2019, 16:07 »
Цитата: Гурман от Октябрь 30, 2019, 20:48
Но почему не подшились две системные - мне не понятно.
Скорее всего по тому, что qmlimportscanner просканировал основной проект и не нашел в нем qml с данными зависимостями, а подпроекты не просканировал.
Записан
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Тут кто-нибудь QML Map в Android получал работающую?
«
Ответ #39 :
Октябрь 31, 2019, 16:14 »
Цитата: Old от Октябрь 31, 2019, 16:07
Цитата: Гурман от Октябрь 30, 2019, 20:48
Но почему не подшились две системные - мне не понятно.
Скорее всего по тому, что qmlimportscanner просканировал основной проект и не нашел в нем qml с данными зависимостями, а подпроекты не просканировал.
Da-h! Я заглянул в исходник qmlimportscanner и после этого сразу подшил dummy.qml с пустым Item и импортом двух библиотек.
И это сработало!
Библиотеки появились в каталоге, подшились, сообщение об их отсутствии при старте исчезло. В приложении появилась надпись Map © WikiMedia Foundation. То есть -
проблема решена
.
Правда карту всё равно не рисует - в консоли сообщение
: qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed
Ну это уже другой вопрос, буду смотреть примеры. Хотя опять же - про SSL/TLS ничего не говорится в описании использования QML Map.
«
Последнее редактирование: Октябрь 31, 2019, 16:37 от Гурман
»
Записан
2^7-1 == 127, задумайтесь...
Страниц:
1
2
[
3
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...