1 (изменено: scoute, 09.11.2020 23:01:17)

Тема: Сборка под Android

Доброго здравия автору, и респект за хороший продукт!

Осилил сборку продукта под Win+Linux+Mac, теперь пытаюсь разобраться с Android.
Тестовые программы из примеров qtcreator собираются на ура и работают в телефоне нормально.
Но коммиты веток "experimental" и "master" - увы, не собираются.

ругается в основном на

/home/user/my_git_home/mytetra_dev/../mytetra_dev/app/src/main.cpp:5: ошибка: 'sys/timeb.h' file not found
#include <sys/timeb.h>
         ^~~~~~~~~~~~~


(я так понимаю, это отсюда)
// Баг в Qt, Q_OS_ANDROID not defined for MOC. Его исправили, но он снова есть
// Поэтому приходится работать через TARGET_OS
#if TARGET_OS!=ANDROID_OS
#include <sys/timeb.h>
#endif

пробовал доустановить timeb.h - она уже в системе есть.

пробовал закомментировать и тд - получаются новые ошибки.

Может подскажите рабочий коммит и версию SDK/NDK/Qt ?

2 (изменено: scoute, 10.11.2020 15:51:16)

Re: Сборка под Android

#include_next <sys/timeb.h>

гугл говорит

It appears that sys/timeb.h in not included for android-21.
Android doesn't support ftime. Use gettimeofday instead.

(ради эксперимента, пытался собрать на android-NDK<=19, ошибка та же)



Наверное, без доработки кода не обойтись .. sad

Было бы неплохо причесать код так, чтобы он собирался на всех платформах
с одинаковой версией Qt, и не самой свежей (5.11), для совместимости со старыми ОС,
а я готов помочь периодически собирать промежуточные билды.

3 (изменено: scoute, 12.11.2020 10:45:09)

Re: Сборка под Android

где-то на форуме или просторах интернета видел mytetra.apk,
и даже скачал его, но программа на телефоне не заработала(( .. хотя установилась.

Вот хочу понять, с какого коммита была сборка .. и чем ..

4

Re: Сборка под Android

scoute пишет:

Доброго здравия автору, и респект за хороший продукт!

(я так понимаю, это отсюда)
// Баг в Qt, Q_OS_ANDROID not defined for MOC. Его исправили, но он снова есть
// Поэтому приходится работать через TARGET_OS
#if TARGET_OS!=ANDROID_OS
#include <sys/timeb.h>
#endif

пробовал доустановить timeb.h - она уже в системе есть.

пробовал закомментировать и тд - получаются новые ошибки.

Может подскажите рабочий коммит и версию SDK/NDK/Qt ?

Для сборки под Андроид надо в pro-файле изменить значение переменной TARGET_OS на ANDROID_OS. Вы делали это?

5 (изменено: scoute, 20.11.2020 22:06:29)

Re: Сборка под Android

xintrea пишет:

Для сборки под Андроид надо в pro-файле изменить значение переменной TARGET_OS на ANDROID_OS. Вы делали это?

Поправил переменную, спасибо за подсказку, сборка прошла успешно и на телефоне заработала.

QT=5.12.10
NDK=21
arch=armeabi_v7a

на выходе получился файл: android-build-debug.apk (10.2 мб)




UPD
Попытался найти способ синхронизировать базу с ПК на Андроид, и пока не нашёл.
Обычным способом (без root) не могу попасть в папку /data на Андроиде, доступ запрещён.

Есть ли какие-то надежды?

Может ли мобильная версия работать с папкой /data скажем из папки "downloads" (куда права есть)?

А то заполнять с нуля БД как-то не хочется ...



UPD2
Пока что удалось перебросить БД только одним способом .. это экспортировать ветку с ПК в отдельную папку, а потом залить её на телефон, и дальше импорт с мобильной версии. Правда, из-за того что всё так мелко, очень трудно пальцем выбрать путь на телефоне, просто мучение какое-то, по 20 раз ..

в моём случае путь был на SD карте, поэтому
sdcard/downloads/mytetra-for-mob     
(на каждую папку надо делать двойное нажатие, как в виндовс)

6 (изменено: scoute, 21.11.2020 14:48:10)

Re: Сборка под Android

Потестировал немного сборку версии 1.44.139 .. в ней вроде всё работает, но есть непонятные моменты

1) после того как с древовидной структуры переходишь на конкретную запись, назад вернуться уже невозможно .. можно только через поиск найти другие записи. Не помогает даже выйти-зайти, программа запоминает последнюю заметку и открывается на ней же снова.

2) кнопки форматирования текста уходят за экран со знаком <<, но этот знак не нажимается, слишком мелкий он.

3) ну и хотелось бы как-то онлайн синхронизацию конечно ...
можно ли сделать скажем окно для ввода ссылки на git репозиторий и в проект внедрить git-библиотеку для работы с ним?

7 (изменено: scoute, 21.11.2020 17:34:36)

Re: Сборка под Android

В итоге собрал версию 1.44.35 (4b1e135ed810e1bed0997a0be270e8c503b1fc50), она пока юзабильнее.

Есть кнопка <  , которая возвращает на дерево.

Благодарю.


https://i.ibb.co/pfPpKFB/photo-2020-11-21-15-46-07.jpghttps://i.ibb.co/6Pfjn96/photo-2020-11-21-15-45-52.jpghttps://i.ibb.co/DRSWx7X/photo-2020-11-21-15-46-01.jpg

8 (изменено: scoute, 21.11.2020 14:50:18)

Re: Сборка под Android

Версии для Андроида,
с 1.44.38 по 1.44.99 - при запуске на телефоне вылетают с ошибкой (остальные проверить не хватило энтузиазма).

В итоге из рабочих версия 1.44.35 и 1.44.139 , но у последней проблема что нет кнопки вернуться назад на дерево.

Остаётся только 1.44.35, её и выложил в другую тему.


Осталось разобраться с полноценным релизом APK, подписанный ключом.
Для qt-creator 4.хх пока не нашёл где это делается.