-
Posts
2,584 -
Joined
-
Last visited
-
Days Won
652
Content Type
Profiles
Forums
Events
Store
Blogs
Everything posted by Yaroslav Brovin
-
Thank you, I have updated my answer above.
-
Ok, I see this issue is appeared only on Android 64-bit target. As I see installer uses wrong library path for Android 64-bit target on 10.4 only. It will be fixed in the next update. At this moment you can easily fix it: Open Tools -> Options -> Language -> Delphi -> Library. Select "Android 64-bit" target in the top comboBox. Open paths editor for "Library Path". Find "$(FGX)\Libs\Common\Android64\Debug\armeabi-v7a" path value and replace it on "$(FGX)\Libs\Common\Android\Debug\arm64-v8a". Save changes. That's it. Thank you
-
Hello Megat, Could you attach dproj file (or sent me by direct message), which has this linker error on 10.4? Thank you
-
Поддержка RAD Studio 10.4 добавлена в 1.4.1.0:
-
Download : The distributive is available by request only. Release d ate: 2 July 2020 Changelog: * Added support RAD Studio 10.4
-
Скачать: Релиз доступен только по запросу. Дата релиза: 02 июля 2020 Список изменений: - Добавлена поддержка RAD Studio 10.4
-
? Минут через 10 выложим хотфикс.
-
The library is asynchronous in General. So if you use Sleep you freeze application main event loop. Please, consider using callbacks and events model for do it.
-
Replaced.
-
Ouch, sorry. One moment.
-
Выложил 1.4.0.1 с исправлением TfgCheckBox и TfgRadioButton.
-
Ждали лицензию на RAD Studio 10.4. Все работы по поддержке 10.4 уже провели. Сегодня мы наконец-то получили ключи. Завтра будет еще один релиз с поддержкой RAD Studio 10.4.
-
Принял. Через 30 минут выложу релиз c хот фиксом.
-
Hello Luke, Do you have demo sample? Thank you
-
Download : The distributive is available by request only. Release d ate: 1 July 2020 Changelog: * Using CheckBox and RadioButton leads to application crash.
-
Скачать: Релиз доступен только по запросу. Дата релиза: 01 июля 2020 Список изменений: * Использование CheckBox и RadioButton приводило к падению приложения
-
Добрый день, Эта ошибка еще воспроизводится на 1.3.0.0?
-
Исправлено в 1.4.0.0 для TForm, TfgLayout.
-
Download : The distributive is available by request only. Release d ate: 1 July 2020 Changelog: ~ Loss of backward compatibility: - Regenerated Android Api headers files: Android.Api.*.pas. - The Migration instruction is available here: https://forum.fgx-native.com/topic/364-%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE-%D0%BC%D0%B8%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D1%81%D1%82%D0%B0%D1%80%D0%BE%D0%B3%D0%BE-android-%D0%BC%D0%BE%D1%81%D1%82%D0%B0-%D0%BD%D0%B0-%D0%BD%D0%BE%D0%B2%D1%8B%D0%B9 * TfgForm: - The specified color in the design-time System SystemStatusBar.BackgroundColor did not change the color in the runtime. Fixed. * Android-Delphi bridge: - The principle of operation of the bridge has been changed. Now the class wrapper is only used for accessing class members and creating instances of Java classes. - Now all Java object wrapper methods accept an interface type, not a class type, as was previously the case. - The Migration instruction is available here: https://forum.fgx-native.com/topic/364-%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE-%D0%BC%D0%B8%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D1%81%D1%82%D0%B0%D1%80%D0%BE%D0%B3%D0%BE-android-%D0%BC%D0%BE%D1%81%D1%82%D0%B0-%D0%BD%D0%B0-%D0%BD%D0%BE%D0%B2%D1%8B%D0%B9 * Android Api: - New headers for some Android Api classes were added. Extended java.lang.Class methods list and added new headers for android.widget.NumberPicker. - All headers files were translated on using Delphi interfaces. - The old deprecated headers are not compatible with 1.4.0.0. - FGX.Helpers.Android were extended with new set of helpers methods for quick conversion Delphi types and Java types. - Existing methods set were extended with new set of methods, which works with array types. - All deprecated methods in Android API now are marked as deprecated and includes information about Android API version, when method was deprecated. * TfgControl.HitTest: - #178 [HitTest] HitTest is broken https://gitlab.com/y.brovin/fgx/-/issues/178 - #497 CardPanel OnTap is invoked, when HitTest=false and not invoked, when HitTest=true https://gitlab.com/y.brovin/fgx/-/issues/497 - #367 [TfgCardPanel] Event OnTap is invoked, when HitTest = False https://gitlab.com/y.brovin/fgx/-/issues/367 - #8 [HitTest] [OnTap] HitTest is not accounted in child controls https://gitlab.com/y.brovin/fgx/-/issues/8 - OnTap on form https://forum.fgx-native.com/topic/86-ontap-%D0%BD%D0%B0-%D1%84%D0%BE%D1%80%D0%BC%D0%B5/ - HitTest doesn't work https://forum.fgx-native.com/topic/341-hittest-%D0%BD%D0%B5-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82/ * Localization: - Now The assets designer generates localized Assets.Consts.pas file version. Migration instruction from 1.3.0.0 -> 1.4.0.0:
-
Скачать: Релиз доступен только по запросу. Дата релиза: 01 июля 2020 Список изменений: ~ Потеря обратной совместимости: - Переработана заголовочные файлы Android API: Android.Api.*.pas. - Инструкция о миграции доступна здесь: https://forum.fgx-native.com/topic/364-%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE-%D0%BC%D0%B8%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D1%81%D1%82%D0%B0%D1%80%D0%BE%D0%B3%D0%BE-android-%D0%BC%D0%BE%D1%81%D1%82%D0%B0-%D0%BD%D0%B0-%D0%BD%D0%BE%D0%B2%D1%8B%D0%B9 * TfgForm: - Заданный цвет в design-time SystemStatusBar.BackgroundColor не менял цвет рантайме. Исправлено. * Android-Delphi мост: - Изменен принцип работы моста. Теперь классовая обертка используется только для доступа к классовыми членам и создания экземпляров Java классов. - Теперь все методы обертки джава объектов принимают интерфейсный тип, а не классовый, как было ранее. - Инструкция о миграции доступна здесь: https://forum.fgx-native.com/topic/364-%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE-%D0%BC%D0%B8%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D1%81%D1%82%D0%B0%D1%80%D0%BE%D0%B3%D0%BE-android-%D0%BC%D0%BE%D1%81%D1%82%D0%B0-%D0%BD%D0%B0-%D0%BD%D0%BE%D0%B2%D1%8B%D0%B9 * Android Api: - Добавлены обертки для новых классов из Android API. В частности расширены методы java.lang.Class и добавлены обертка для android.widget.NumberPicker. - Все заголовочные файлы переведены на использование интерфейсов. - Старые заголовочные файлы больше не совместимы с 1.4.0.0. - Расширен набор вспомогательных методов в FGX.Helpers.Android для быстрой конвертации Delphi типов в Java и наоборот. - Расширен набор методов для уже существующих типов, работаюших с массивами. - Теперь все устаревшие методы Android API помечены, как deprecated и содержат информацию о версии Android, когда метод стал устаревшим. * TfgControl.HitTest: - #178 [HitTest] Поломался HitTest https://gitlab.com/y.brovin/fgx/-/issues/178 - #497 CardPanel OnTap срабатывает при HitTest=false и не срабатывает при HitTest=true https://gitlab.com/y.brovin/fgx/-/issues/497 - #367 [TfgCardPanel] Отрабатывает событие OnTap при HitTest = False https://gitlab.com/y.brovin/fgx/-/issues/367 - #8 [HitTest] [OnTap] Не учитывается свойство HitTest у дочерних компонентов при работе OnTap https://gitlab.com/y.brovin/fgx/-/issues/8 - OnTap на форме https://forum.fgx-native.com/topic/86-ontap-%D0%BD%D0%B0-%D1%84%D0%BE%D1%80%D0%BC%D0%B5/ - HitTest не работает https://forum.fgx-native.com/topic/341-hittest-%D0%BD%D0%B5-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82/ * Локализация: - Теперь дизайнер ресурсов генерирует локализованную версию Assets.Consts.pas файл. Инструкция по миграции с 1.3.0.0 на 1.4.0.0:
-
Исправлено в 1.4.0.0.
-
Всем доброго дня! Как и обещал ранее, перед релизом 1.4.0.0 выкладываю инструкцию о миграции использования старого Android-Delphi моста на новый в 1.4.0.0. Это руководство актуально тем разработчикам, которые используют Android Api в своих проектах. В этой статье я рассмотрю только те аспекты в работе моста, которые изменились. По большей части изменения были необходимы только в свете поддержки RAD Studio 10.4, в которой была полностью удалена поддержка модели памяти ARC. 1. Создание Java объекта: Было: var Intent: TJIntent; Intent := TJIntent.Create; Стало: var Intent: JIntent; Intent := TJIntent.Create; Все объявления переменных, атрибутов и тд должны быть теперь именованы без префикса "T". TJActivity -> JActivity. 2. Передача Java объектов через Java интерфейс: Было: // Декларация метода. Принимает атрибут интерфейсного типа CharSequence. TJTextView.setError(const AArg0: JCharSequence); // Java cтрока TJString реализует интерфейс JCharSequence. Поэтому передача идет напрямую (в старой версии моста). View.setError(StringToJString(Control.Error)); Стало: // Декларация метода. Принимает атрибут интерфейсного типа CharSequence. TJTextView.setError(const AArg0: JCharSequence); // Теперь обертка Java cтроки TJString НЕ реализует явно интерфейс JCharSequence. Поэтому необходима явная конвертация JString -> JCharSequence View.setError(TJCharSequence.Wrap(StringToJString(Control.Error))); // Или можно воспользоваться хелпером из FGX.Helpers.Android.pas View.setError(StringToJCharSequence(Control.Error)); 3. Работа с Java массивами: При создании экземпляра Java массива (TJavaArray<T>) вся работа теперь осуществляется через интерфейс IJavaArray<T>. Было: var Points: TJavaArray<Single>; Points := TJavaArray<Single>.Create(0); FCanvas.drawLines(Points, FStroke); Стало: var Points: IJavaArray<Single>; Points := TJavaArray<Single>.Create(0); FCanvas.drawLines(Points, FStroke); 4. Работа с Java-листенерами: Если вы реализовывали свои листенеры через наследование класса Java.Bridge.TJavaLocal, то в 1.4.0.0 листенеры теперь поддерживают счетчик ссылок через Delphi IInterface. Это значит, что при создании листенера, его необходимо сохранять в переменную/поле интерфейсного типа, а не объектного. Было: TfgAndroidCameraStateListener = class(TJavaLocal, JCameraStateListener) private [Weak] FCamera: TfgAndroidCamera; public constructor Create(const ACamera: TfgAndroidCamera); { JCameraStateListener } procedure onClosed(const AArg0: JCameraDevice); procedure onDisconnected(const cameraDevice: JCameraDevice); procedure onError(const cameraDevice: JCameraDevice; const errorCode: Integer); procedure onOpened(const cameraDevice: JCameraDevice); end; var FStateListener: TfgAndroidCameraStateListener FStateListener := TfgAndroidCameraStateListener.Create(Self); FStateCallback.setListener(FStateListener); Стало: TfgAndroidCameraStateListener = class(TJavaLocal, JCameraStateListener) private [Weak] FCamera: TfgAndroidCamera; public constructor Create(const ACamera: TfgAndroidCamera); { JCameraStateListener } procedure onClosed(const AArg0: JCameraDevice); procedure onDisconnected(const cameraDevice: JCameraDevice); procedure onError(const cameraDevice: JCameraDevice; const errorCode: Integer); procedure onOpened(const cameraDevice: JCameraDevice); end; var FStateListener: JCameraStateListener FStateListener := TfgAndroidCameraStateListener.Create(Self); FStateCallback.setListener(FStateListener); В противном случае, экземпляр листенера FStateListener будет удален сразу же после вызова FStateCallback.setListener(FStateListener); Что в свою очередь приведет к последующим падения приложения. Так как сработает механизм подсчета ссылок Delphi интерфейсов. 5. Конвертация string <-> JString: До RAD Studio 10.4 мобильные компиляторы поддерживали добавление операторов неявного преобразования. Это в свою очередь позволило нам реализовать автоматическую конвертацию "на лету" Delphi string <-> Java JString. В 10.4 эту возможность убрали вместе с ARC, так как неявное преобразование реализуется через ARC. Поэтому теперь нужно явно вызывать преобразование строк через StringToJString и JStringToString: Было: TjUri.parse('tel:+'); Стало: uses FGX.Helpers.Android; TJUri.parse(StringToJString('tel:+')) Это все изменения, которые необходимо сделать.
-
Если какого-то Андроид апи не хватает, я всегда могу его добавить в ближайший релиз. только дайте мне знать, чего не хватает.