Перейти к содержанию
  • Регистрация
  • 1
Aleks.win

Проблема при активации memo или edit программа зависает и закрывается.

Вопрос

Кто сталкивался с Android 5.0 Lollipop на Delphi xe 10. При активации memo или edit программа зависает и закрывается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Рекомендуемые сообщения

  • 0

нет таких проблем, приложите проект

Вот проект. Там нет ничего кроме TEdit. Ошибка срабатывает на Edit1.SetFocus. Что деталь не знаю.     

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

проект приложите без бинарников

 

update:

проблем не выявлено

попробуйте использовать

SetFocused(Edit1);

Или как-то так

ActiveControl := Edit1;
Изменено пользователем ZuBy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Ок

 

 

проект приложите без бинарников

 

update:

проблем не выявлено

попробуйте использовать

SetFocused(Edit1);

Или как-то так

ActiveControl := Edit1;

Ошибка вылетает при активации (нажатии) ячейки.  

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Вот проект. Там нет ничего кроме TEdit. Ошибка срабатывает на Edit1.SetFocus. Что деталь не знаю.     

Сегодня нарвался на эту проблему, когда скомпилировал свой проект на планшете с Андройд 5.0.2 :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Тоже сталкивался на одном устройстве. Я так понимаю дело в особенностях конкретного устройства, используемой клавиатуры и еще черт значит чего. При этом переход на "нативную" разработку не гарантирует отсутствия проблемы разнообразия устройств, и зоопарка прошивок. Посмотрите на логи обновлений других приложений - постоянно идет доработка под конкретные устройства и версии.

Так что, исходники в руки и вперед в отладку. Хотя и это не панацея.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

У меня тоже была проблема на устройствах:
Samsung S6 , ОС: Lolipop 5.1.1
Samsung s4 , ОС: Lolipop 5.0

при активации Edit, программа просто закрывалась с сообщением "Project1 Stopped working.". Однако при создании нового проекта такого не происходило. Так и не смог разобраться.

Изменено пользователем Alexander616

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

проблем не выявлено

попробуйте использовать

SetFocused(Edit1);

 

Не обязательно вызывать фокус программно, достаточно просто пальцем ткнуть в Memo, как появляется ошибка

error.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

на новом проекте тоже?

 

в манифесте android есть строка - <uses-feature android:glEsVersion="0x00020000" android:required="True"/> ?

 

может что то прояснит - http://stackoverflow.com/questions/26985858/gles10-glgetintegerv-returns-0-in-lollipop-only/27092070#27092070

Изменено пользователем haword

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

на новом проекте тоже?

 

в манифесте android есть строка - <uses-feature android:glEsVersion="0x00020000" android:required="True"/> ?

 

 В новом проекте та же ошибка (у меня Delphi 10 Seattle)   :wacko:  В манифесте эта строчка есть. Что она означает?

ничего из написанного там не понял, тем более что там про JAVA

Изменено пользователем Rusland

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

ну типа не запустится на старом opengl. ну раз с нуля на 10 значит косяк. а что за аппарат? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Было бы неплохо продублировать сюда ответ из Stackoverflow, если он вам помог :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

помогло? если да то надо будет у себя то же править что бы не словить такой глюк :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Было бы неплохо продублировать сюда ответ из Stackoverflow, если он вам помог :)

 

 

Ответ со Stackoverflow действительно помог!

 

Из папки source/fmx берем FMX.Platform.Android.pas кладем в папку с проектом.

Меняем в нем следующие процедуры:

procedure TPlatformAndroid.RunOnUIThread(Proc: TThreadProcedure);
begin
  //MainActivity.runOnUiThread(TSimpleProcedureRunner.Create(Proc));
  CallInUIThread(
  procedure()
  begin
    Proc;
  end);
end;

procedure TPlatformAndroid.SynchronizeOnUIThread(Proc: TThreadProcedure);
//var
//  Runner: TSimpleProcedureRunner;
begin
//  CallInUIThread(
//  procedure()
//  begin
//  Runner := TSimpleProcedureRunner.Create(Proc);
//  MainActivity.runOnUiThread(Runner);
//  Runner.Event.WaitFor;
//  end);
  CallInUIThreadAndWaitFinishing(
  procedure()
  begin
    Proc;
  end);
end;

procedure TPlatformAndroid.SetClipboard(Value: TValue);
//var
//  Setter: TClipboardSetter;
//begin
//  Setter := TClipboardSetter.Create(Value.ToString);
//  TAndroidHelper.Activity.runOnUiThread(Setter);
//  Setter.Done.WaitFor(INFINITE);
var
  Setter: TClipboardSetter; 
begin 
  Setter := TClipboardSetter.Create(Value.ToString); 
  CallInUIThread( procedure() 
  begin 
    SharedActivity.runOnUiThread(Setter); 
  end); 
  Setter.Done.WaitFor(INFINITE); 
end; 

function TPlatformAndroid.GetClipboard: TValue;
//var
//  Getter: TClipboardGetter;
//begin
//  Getter := TClipboardGetter.Create;
//  TAndroidHelper.Activity.runOnUiThread(Getter);
//  Getter.Done.WaitFor(INFINITE);
//  Result := Getter.Value;
var
  Getter: TClipboardGetter; 
begin 
  Getter := TClipboardGetter.Create; 
  CallInUIThread( procedure() 
  begin 
    SharedActivity.runOnUiThread(Getter); 
  end); 
  Getter.Done.WaitFor(INFINITE); 
  Result := Getter.Value; 
end;

Запускаем и при нажатии на Edit или Memo клавиатура нормально появляется.

 

PS. Надеюсь Embarcadero исправит эту проблему в новой версии.

 

 

 

помогло? если да то надо будет у себя то же править что бы не словить такой глюк  :)

Да, помогло :) Видимо словить такой глюк могут аппараты Lenovo - что-то в их виртуальной клавиатуре не как у всех

 

PS. Вопрос Бровину Ярославу:

Будет ли исправлен Androidapi.Helpers.pas? Постоянно с ним какие-нибудь проблемы. В сервисах его даже подключать опасно, обязательно вылезают ошибки касающиеся TAndroidHelper.Activity

 

С уважением, ... дата... подпись

Изменено пользователем Rusland

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

гм, хз насчет хелпера но ругается у меня на устаревший вызов. 
 
и да если есть время попробуйте в получении из буфера и посылки туда данных найти
 
SharedActivity.runOnUiThread(
заменить на 
TAndroidHelper.Activity.runOnUiThread(

 

и проверить работает или нет у вас?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

С выходом новой версии студии Berlin вернулась старая болячка на моем планшете - падение при фокусе Edita. Исправил  FMX.Platform.Android.pas почти также как в прошлый раз и проблема ушла:

procedure TPlatformAndroid.RunOnUIThread(Proc: TThreadProcedure);
begin
  //MainActivity.runOnUiThread(TSimpleProcedureRunner.Create(Proc));
  CallInUIThread(
  procedure()
  begin
    Proc;
  end);
end;

procedure TPlatformAndroid.SynchronizeOnUIThread(Proc: TThreadProcedure);
//var
//  Runner: TSimpleProcedureRunner;
begin
//  Runner := TSimpleProcedureRunner.Create(Proc);
//  MainActivity.runOnUiThread(Runner);
//  Runner.Event.WaitFor;
  CallInUIThreadAndWaitFinishing(
  procedure()
  begin
    Proc;
  end);
end;

 

Изменено пользователем Rusland

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
В 20.04.2016 в 17:54, Rusland сказал:

С выходом новой версии студии Berlin вернулась старая болячка на моем планшете - падение при фокусе Edita. Исправил  FMX.Platform.Android.pas почти также как в прошлый раз и проблема ушла:

Коллеги, подскажите плиз, как использовать метод CallInUIThreadAndWaitFinishing? Как ловить событие окончания вызова?

Не смог найти документацию.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

У меня на планшете DEXP Ursus TS170 тоже была такая проблема. Компоненты типа TEdit  и TMemo  подвешивали программу. Хотя на нескольких других планшетах и смартфонах все работало. Допиливание  FMX.Platform.Android.pas указанное выше помогло. Спасибо всем!!!!!

ЗЫ А сколько еще есть таких глюков?  

Изменено пользователем Юрий Гусач

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
10 минут назад, Юрий Гусач сказал:

У меня на планшете DEXP Ursus TS170 тоже была такая проблема. Компоненты типа TEdit  и TMemo  подвешивали программу. Хотя на нескольких других планшетах и смартфонах все работало. Допиливание  FMX.Platform.Android.pas указанное выше помогло. Спасибо всем!!!!!

ЗЫ А сколько еще есть таких глюков?  

никто незнает, все найденные "глюки" решаем по месту

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

 

В 23.09.2016 в 21:36, ZuBy сказал:

никто незнает, все найденные "глюки" решаем по месту

 У меня такой интересный вопрос к ZuBy, другим продвинутым  пользователям а также к Ярославу:  на этом форуме по крайней мере в двух разных темах я видел разные варианты редактированного модуля  FMX.Platform.Android.pas.

Исправленный вариант есть в этой теме, и еще один я видел в теме, посвященной работе с Intel процессорами под Android-ом.  А есть ли где-нибудь вариант исправленный наиболее полным образом на текущее время? 

Можно ли его опубликовать? Вопрос не очень праздный.  На проект как всегда очень мало времени, а глюки уже  отняли много нервов. Я очень признателен участникам форума, он   

реально очень помогает!  В работе с Android я новичок, а так начинал в Delphi, если можно сказать с Turbo Pascal 6.0 во времена DOS. Борьба с Глюками - это наше все!  :-) :-) :-)   

Изменено пользователем Юрий Гусач

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
11 часов назад, Юрий Гусач сказал:

 

 У меня такой интересный вопрос к ZuBy, другим продвинутым  пользователям а также к Ярославу:  на этом форуме по крайней мере в двух разных темах я видел разные варианты редактированного модуля  FMX.Platform.Android.pas.

Исправленный вариант есть в этой теме, и еще один я видел в теме, посвященной работе с Intel процессорами под Android-ом.  А есть ли где-нибудь вариант исправленный наиболее полным образом на текущее время? 

Можно ли его опубликовать? Вопрос не очень праздный.  На проект как всегда очень мало времени, а глюки уже  отняли много нервов. Я очень признателен участникам форума, он   

реально очень помогает!  В работе с Android я новичок, а так начинал в Delphi, если можно сказать с Turbo Pascal 6.0 во времена DOS. Борьба с Глюками - это наше все!  :-) :-) :-)   

есть три варианта:

1) Full Screen (в основном для игр используется)

2) исправленный FMX.Platform.Android (но там не все гладко, контролы чуть ниже становятся)

3) третий вариант (тоже есть ньюансы с планшетами и расположением NavBar'a)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...