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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: (РЕШЕНО) Вот и как поймать, в чём проблема?  (Прочитано 5782 раз)
Гурман
Гуру общения
******
Offline 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 Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Август 25, 2016, 13:42 »

Вот и не понятно - как выяснить, из-за чего падает ещё до входа в main()...
Если падает до main(), то 100% проблемы со статической инициализацией.
Следовательно её нужно исключить.
Записан

Qt 5.11/4.8.7 (X11/Win)
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #2 : Август 25, 2016, 14:24 »

Вот и не понятно - как выяснить, из-за чего падает ещё до входа в main()...
Если падает до main(), то 100% проблемы со статической инициализацией.
Следовательно её нужно исключить.

Не факт. Плагин до входа в main() грузится.
Записан

2^7-1 == 127, задумайтесь...
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #3 : Август 25, 2016, 15:09 »

Не факт. Плагин до входа в main() грузится.
Грузи после и увидишь.
Записан

Qt 5.11/4.8.7 (X11/Win)
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #4 : Август 29, 2016, 21:46 »

Там не в плагине дело. Я переделал сборку, чтобы для Android вместо плагина компоновалась статическая библиотека lib***.a, и потом подшивалась к приложению. Всё равно падает. Пытаюсь запустить на планшете это приложение из терминала, может там скажет чего. Но не знаю, как это правильно сделать. Оно же запускается под Java кодом, само моё приложение - это динамическая библиотека.

В моём коде статических переменных нет. Про SVG пишут, что он вроде как в Android работает. Пытаюсь выяснить, подключение каких функций приводит к падению, но как же это всё тормозит... Даже Genymotion в нативном коде x86 в Linux работает безобразно медленно.
« Последнее редактирование: Август 29, 2016, 22:09 от Гурман » Записан

2^7-1 == 127, задумайтесь...
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #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]   Вверх
  Печать  
 
Перейти в:  


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