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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [Решено] Сегфолтится QApplication::clipboard() в Андроиде.  (Прочитано 5921 раз)
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« : Январь 06, 2014, 14:39 »

Инструментарий:

- QtCreator 3.0.0,
- Qt 5.2
- android-ndk r9c
- android-sdk r22.3
- Сборка под armeabi-v7a

Сделал минимальный проект, чтобы продемонстрировать проблему.

А именно, имеем код:

Код
C++ (Qt)
   qDebug() << "Before clipboard check";
 
   if(QApplication::clipboard()->mimeData()->hasFormat("text/plain"))
    qDebug() << "Clipboard include text data";
 
   qDebug() << "After clipboard check";
 

Ошибка в глубинах QApplication::clipboard()->mimeData()->hasFormat("text/plain"). На этой строке происходит сегфолт при запуске в Андроидной виртуалке.

Вроде как метод статический, никаких проблем с памятью быть не должно. Тем не менее сегфолтится.

Может кто-нибудь сказать что здесь не так?

Файл (2,6 кб): http://rghost.ru/51439194


« Последнее редактирование: Январь 06, 2014, 17:54 от xintrea » Записан

Собираю информацию по крупицам
http://webhamster.ru
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #1 : Январь 06, 2014, 15:07 »

А можно точнее, в каком именно методе:
QApplication::clipboard()
mimeData()
hasFormat()

Точно clipboard или mimeData не возвращают 0?
Записан
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« Ответ #2 : Январь 06, 2014, 15:20 »

А можно точнее, в каком именно методе:
QApplication::clipboard()
mimeData()
hasFormat()

Точно clipboard или mimeData не возвращают 0?

Разложил на :

Код
C++ (Qt)
   const QClipboard *clipboard = QApplication::clipboard();
   const QMimeData *mimeData = clipboard->mimeData();
   if(mimeData->hasFormat("text/plain"))
    qDebug() << "Clipboard include text data";

Затыкается на mimeData->hasFormat("text/plain").

Записан

Собираю информацию по крупицам
http://webhamster.ru
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #3 : Январь 06, 2014, 15:22 »

Проверь нчто возвоащает mimeData, не 0 ли?
Записан
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« Ответ #4 : Январь 06, 2014, 15:26 »

Проверь нчто возвоащает mimeData, не 0 ли?


Ноль.

И что теперь с этим делать?
Записан

Собираю информацию по крупицам
http://webhamster.ru
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #5 : Январь 06, 2014, 15:30 »

И что теперь с этим делать?
Проверять. Ты просто пытаешься вызвать hasFormat для несуществующего объекта.
Как только в буфере появятся данные, будет возвращаться указатель на валидный объект QMimeData.
« Последнее редактирование: Январь 06, 2014, 16:54 от Old » Записан
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« Ответ #6 : Январь 06, 2014, 16:57 »

Все, спасибо!

MyTetra запустилась и в эмуляторе и на железке.
Записан

Собираю информацию по крупицам
http://webhamster.ru
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« Ответ #7 : Январь 06, 2014, 16:59 »


Кстати, как ты ухитрился на железке распахнуть окно на весь экран?
Записан

Собираю информацию по крупицам
http://webhamster.ru
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #8 : Январь 06, 2014, 17:01 »

Кстати, как ты ухитрился на железке распахнуть окно на весь экран?
Ээээ, а как она у тебя выглядит? У меня все программы распахиваются на весь экран. Улыбающийся
Записан
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« Ответ #9 : Январь 06, 2014, 17:16 »

Ээээ, а как она у тебя выглядит? У меня все программы распахиваются на весь экран. Улыбающийся

Ну у нее пока что в конфиге заданы начальные размеры окна. На десктопе на весь экран разворачивается соответствующей кнопкой.

В андроиде кнопок управления окном нет, а у тебя развернуто.

UPD

Ага, разобрался. Достаточно переключиться на другую программу и потом обратно.
Записан

Собираю информацию по крупицам
http://webhamster.ru
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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