Russian Qt Forum
Ноябрь 22, 2024, 17:27
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Qt Embedded
>
(РЕШЕНО) Вот и как поймать, в чём проблема?
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: (РЕШЕНО) Вот и как поймать, в чём проблема? (Прочитано 6077 раз)
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
(РЕШЕНО) Вот и как поймать, в чём проблема?
«
:
Август 24, 2016, 16:40 »
В Linux собираю приложение для Android с использованием плагина. Плагин тоже мой, простейший. Всё успешно собирается, для проверки собираю десктоп-версию, которая запускается в Linux. Тут работает. Архив apk включает этот плагин, для чего в проекте есть специальный ANDROID_EXTRA_LIBS +=.... Компоновка выполняется, apk создаётся, успешно переносится на планшет через USB или на эмулятор в этом же Linux. Устанавливается, начинает запускаться - и потом падает. Собирал с отладчиком - до выполнения main() не доходит, падает раньше. Проблема конечно связана с плагином, поскольку это же приложение, если собираю его без плагина, то нормально работает на планшете и в эмуляторе. Плагин является подключенным виджетом, который расположен на главном окне, и в Linux версии положен на него в дизайнере, а в Android версии собирается без поддержки дизайнера.
Вот и не понятно - как выяснить, из-за чего падает ещё до входа в main()...
«
Последнее редактирование: Ноябрь 02, 2016, 19:44 от Гурман
»
Записан
2^7-1 == 127, задумайтесь...
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Вот и как поймать, в чём проблема?
«
Ответ #1 :
Август 25, 2016, 13:42 »
Цитата: Гурман от Август 24, 2016, 16:40
Вот и не понятно - как выяснить, из-за чего падает ещё до входа в main()...
Если падает до main(), то 100% проблемы со статической инициализацией.
Следовательно её нужно исключить.
Записан
Qt 5.11/4.8.7 (X11/Win)
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Вот и как поймать, в чём проблема?
«
Ответ #2 :
Август 25, 2016, 14:24 »
Цитата: GreatSnake от Август 25, 2016, 13:42
Цитата: Гурман от Август 24, 2016, 16:40
Вот и не понятно - как выяснить, из-за чего падает ещё до входа в main()...
Если падает до main(), то 100% проблемы со статической инициализацией.
Следовательно её нужно исключить.
Не факт. Плагин до входа в main() грузится.
Записан
2^7-1 == 127, задумайтесь...
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Вот и как поймать, в чём проблема?
«
Ответ #3 :
Август 25, 2016, 15:09 »
Цитата: Гурман от Август 25, 2016, 14:24
Не факт. Плагин до входа в main() грузится.
Грузи после и увидишь.
Записан
Qt 5.11/4.8.7 (X11/Win)
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Вот и как поймать, в чём проблема?
«
Ответ #4 :
Август 29, 2016, 21:46 »
Там не в плагине дело. Я переделал сборку, чтобы для Android вместо плагина компоновалась статическая библиотека lib***.a, и потом подшивалась к приложению. Всё равно падает. Пытаюсь запустить на планшете это приложение из терминала, может там скажет чего. Но не знаю, как это правильно сделать. Оно же запускается под Java кодом, само моё приложение - это динамическая библиотека.
В моём коде статических переменных нет. Про SVG пишут, что он вроде как в Android работает. Пытаюсь выяснить, подключение каких функций приводит к падению, но как же это всё тормозит... Даже Genymotion в нативном коде x86 в Linux работает безобразно медленно.
«
Последнее редактирование: Август 29, 2016, 22:09 от Гурман
»
Записан
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: Вот и как поймать, в чём проблема?
«
Ответ #5 :
Август 30, 2016, 10:47 »
Фуф... Главная проблема решена, получилось то, что необходимо, но как отлавливать подобные глюки - всё равно не выяснил. Тем более, что заработало на планшете ARM с Android 4.0.3, но в эмуляторе Genymotion x86 с Android 4.1 всё равно падает. Поэтому РЕШЕНО в заголовок не вписываю.
А глюк исправился добавлением CONFIG += svg в
головной проект
, то есть в проект приложения, использующего плагин с SVG. То есть, в проекте плагина, использующего SVG, эта настройка разумеется есть. И в Linux на десктопе так и работает, все необходимые связи плагина при загрузке устанавливаются. Но в Android молча падает. Ни за что сам бы не догадался, если бы не нашёл в Инете пост с аналогичной проблемой еще в Necessitas. Подозреваю, что такая же фигня должна быть и для других аналогичных модулей - multimedia, xml и т.д.
«
Последнее редактирование: Август 30, 2016, 11:21 от Гурман
»
Записан
2^7-1 == 127, задумайтесь...
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...