Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Desarrollo en Delphi para Android (https://www.clubdelphi.com/foros/forumdisplay.php?f=57)
-   -   raised exception class segmentation fault (11) al iniciar en modo debug (https://www.clubdelphi.com/foros/showthread.php?t=90102)

D1360666 06-04-2016 23:28:00

raised exception class segmentation fault (11) al iniciar en modo debug
 
Hola amigos como están.
Estoy terminando mi primer app en Delphi EX8 para Android.
Estoy haciendo una APP de mantenimiento de extintores.
Mi consulta es la siguiente.
Que sucede cuando al iniciar la app en modo depuracion en una tablet, me da el siguiente error:

raised exception class segmentation fault (11)

no puedo encontrar cual es la razón del error.

Desde ya les agradezco.

richy08 14-01-2017 19:16:53

Que tal D1360666 , estoy programando en berlin 10.1 y me sucede el mismo error , cuando un edit recibe el foco, tuviste suerte en resolverlo??


saludos

Neftali [Germán.Estévez] 16-01-2017 11:13:15

¿Habría que saber qué estáis haciendo en la aplicación para saber porqué puede ser ese error?
¿Qué componentes estáis usando en el form?
¿Cómo los estáis inicializando?
¿Habéis debuggado la aplicación?
¿Los permisos necesarios (si se necesitan) están activados?

....

D1360666 16-01-2017 14:10:28

Cita:

Empezado por richy08 (Mensaje 512352)
Que tal D1360666 , estoy programando en berlin 10.1 y me sucede el mismo error , cuando un edit recibe el foco, tuviste suerte en resolverlo??


saludos

Hola como estás richy08, te comento que la aplicación, me siguió dando error en Android 5, ejecutando en una tablet con Android 4 no tenía problemas, me funcionó a la perfección y no me retornaba el error "Segmentation fault".
Como era específica para un cliente y en esa tablet funcionó bien se solucionó de esa manera pero luego no volví a probar en las versiones de Android nuevas.
Si bien está bueno y con Firemonkey es bastante fácil y rápido de programar ya que es una interfaz similar a estar programando para escritorio, este error interno no me gustó, porque no sé que cambia entre una versión y otra.
Si puedes llegar a una solución te agradezco me la aportes para tener en cuenta.

Saludos.

richy08 16-01-2017 17:59:00

Cita:

Empezado por Neftali (Mensaje 512363)
¿Habría que saber qué estáis haciendo en la aplicación para saber porqué puede ser ese error?
¿Qué componentes estáis usando en el form?
¿Cómo los estáis inicializando?
¿Habéis debuggado la aplicación?
¿Los permisos necesarios (si se necesitan) están activados?

....


Que tal Neftali , el componente es un tedit, este esta dentro de un Tlayout que a su vez esta dentro de Tscaledlayout(Tambien seteo los componenetes en el show y create de la forma, ya probe sin ese codigo el resultado es el mismo), si he debbugeado la aplicacion en cuanto recibe el foco truena, todos los permisos estan seteados (Localizacion, notificaciones)

saludos

richy08 16-01-2017 18:00:58

Cita:

Empezado por D1360666 (Mensaje 512369)
Hola como estás richy08, te comento que la aplicación, me siguió dando error en Android 5, ejecutando en una tablet con Android 4 no tenía problemas, me funcionó a la perfección y no me retornaba el error "Segmentation fault".
Como era específica para un cliente y en esa tablet funcionó bien se solucionó de esa manera pero luego no volví a probar en las versiones de Android nuevas.
Si bien está bueno y con Firemonkey es bastante fácil y rápido de programar ya que es una interfaz similar a estar programando para escritorio, este error interno no me gustó, porque no sé que cambia entre una versión y otra.
Si puedes llegar a una solución te agradezco me la aportes para tener en cuenta.

Saludos.

Que tal D1360666, ni hablar creo que me tocara picar piedra con este error, voy a actualizar el SDK de android para ver que pasa, cualquier cosa les comento gracias

richy08 19-01-2017 01:03:28

valla al parecer es un problema grave que tiene que corregir embarcadero(otra mancha al tigre).

http://stackoverflow.com/questions/3...dit-focus?rq=1

AgustinOrtu 19-01-2017 05:09:57

Tengan en cuenta que un segmentation fault es lo que en Delphi conocemos como Access Violation. Osea, estan referenciando a un objeto que no fue instanciado

Podrian intentar depurar, sobre todo activando la opcion "use debug .dcu", para que el depurador tenga informacion de las unidades de FMX y permita brindar mas informacion

Aca amplian el tema y hay un fix temporal

richy08 19-01-2017 17:20:20

Cita:

Empezado por AgustinOrtu (Mensaje 512444)
Tengan en cuenta que un segmentation fault es lo que en Delphi conocemos como Access Violation. Osea, estan referenciando a un objeto que no fue instanciado

Podrian intentar depurar, sobre todo activando la opcion "use debug .dcu", para que el depurador tenga informacion de las unidades de FMX y permita brindar mas informacion

Aca amplian el tema y hay un fix temporal

Que tal aAgustinOrtu como comente anteriormente es un error del IDE DE DELPHI, si ves el enlace este problema se reporto a embarcadero ya varias veces desde agosto de 2016, pruebo el mismo proyecto en otro dispositivo android con otra version y funciona sin problemas

AgustinOrtu 19-01-2017 18:05:27

No parece ser un error del IDE, ya que la excepción ocurre en la aplicación Android y en tiempo de ejecución. Parece ser un problema del código fuente de Firemonkey.

No probaste con el fix del reporte?

richy08 19-01-2017 18:59:13

Cita:

Empezado por AgustinOrtu (Mensaje 512458)
No parece ser un error del IDE, ya que la excepción ocurre en la aplicación Android y en tiempo de ejecución. Parece ser un problema del código fuente de Firemonkey.

No probaste con el fix del reporte?

no pude abrir el enlace que pones, pero si la solucion es poner en la carpeta de mi proyecto la unidad de android y cambiar el codigo de algunas funciones (no recuerdo cuales ), no funciona segun es para seattle, y sigo insistiendo que es un error del IDE, samsumg galaxy android 4.4.2 funciona correcto, LG spirit android 5.0.1 truena al tocar el edit, pero si le mando por codigo el foco al edit no truena en el LG, pregunta no ers MVP de embardero verdad??

richy08 19-01-2017 19:26:01

Por cierto se me olvido comentar en IOS funciona correctamente.

AgustinOrtu 19-01-2017 22:49:43

Creo que hay un malentendido

No quiero decir que sea una falla del codigo que escribiste vos. Tampoco me parece que sea una falla del IDE. El IDE es solamente el entorno de desarrollo. Claramente si que es un problema de Firemonkey en la plataforma Android.

A lo que apuntaba con la depuracion, es que podes intentar solucionar el problema y no esperar a que Embarcadero lo solucione (lo mas probable es que tengas que actualizar a la siguiente version de Delphi :rolleyes:)

Para ingresar al enlace hace falta estar registrado en el sitio de reportes de Embarcadero.

Estos son los comentarios mas relevantes me parece:

Por curiosidad, tal y como dice el comentario, tu dispositivo tiene varios de esas teclas virtuales y no solo las 3 standart de Android? Quiza el problema este por ese lado

Cita:

The most important thing is:has 7 virtual key on the bottom (back home unknow menu vol- vol+ Screenshot)。
Otra posibilidad es que sea problema del Clipboard

Cita:

i @wang wang, much appreciation for your efforts. I have gone over and applied your patch severally from scratch and unfortunately it does not work for me (10.1 Berlin). However going by your pointer that the issue is with the clipboard code, i edited FMX.Edit.pas and changed line 159, the declaration for TCustomEdit
originally:
159: TCustomEdit = class(TPresentedControl, ITextActions, IVirtualKeyboardControl, IItemsContainer, ITextSettings,
changed by commenting out ITextActions
The edit control now works as expected with the downside that I lose text manipulation commands like select all, copy, paste etc
the devices are
a) Lenovo A5000, Android 5.0.1, ARM32
b) Infinix HOT 3 LTE Android 5.1.1, ARM32 and
c) Infinix Zero 3 Android 5.1.0, ARM32
Cita:

I am using Berlin 10.1 with update 2 and Seattle
I had same problem with Tablet: Lenovo, Tab 3 710F Essential, Android version: 5.01 Build TB3-710F_S000026_160727_Row

with the same Lenovo tablet hardware but another Android version it did not have the problem.

When I added the fix from Wang Wang it solved the problem!!!

3 (minor) comments:
1.On top of all units wang wang sent in the download zip you must add the
standard "FMX.Maps.Android.pas" and "FMX.WebBrowser.Android.pas" from
Delphi source/fmx in order for the project to compile.
2. the project apk file after the fix is some 300KB bigger.
3. I Tested only on a small test project with only TEdit. I did not test with a full big project.
Este enlace lleva a la descarga del "fix". Es un arreglo temporal hecho por un tercero, no es oficial.

Como se trata de un archivo adjunto de esa misma pagina, me imagino que tendras que registrarte para poder bajarlo.

richy08 20-01-2017 00:16:04

gracias AgustinOrtu, cuando me referia a problemas en el IDE tienes razon son problemas de Firemonkey en la plataforma Android, lo de no abre el enlace de la pagina me referia, a que me tiraba errores al cargarse la pagina, ya descargue la actualizacion para 10.1.2 y estoy bajando el fix echo por un tercero que me recomiendas les voy a echar un ojo y les comento , mil gracias a todos por sus comentarios

richy08 20-01-2017 20:21:01

Que tal solo para comentarles ya actualize a berlin 10.1.2 , ya probe el fix (ni siquiera compila marca error en este procedemineto)

procedure TForm1.CheckBoxAutoCloseVKAreaChange(Sender: TObject);
begin
RectangleVKArea.Height := GetVirtualKeyboardHeight;
end;

[DCC Error] Unit1.pas(84): E2003 Undeclared identifier: 'GetVirtualKeyboardHeight'

y me sigue marcando el mismo error, al recibir el tedit el foco..

AgustinOrtu 20-01-2017 22:17:14

Al parecer se olvido de actualizar su proyecto demo

Primero que hay que incluir las unidades modificadas dentro del proyecto, ya que solo esta presenta la Unit1.pas

Luego, la funcion GetVirtualKeyboardHeight fue movida a la seccion de implementacion de la unidad FMX.VirtualKeyboard.Android, por lo tanto no es accesible desde fuera de esa unidad

Ahora hay dos funciones que internamente llaman a la GetVirtualKeyboardHeight, son estas dos:

Código PHP:

///    <summary>
///  GetVirtualKeyboardHeight Exclude NavigationBar
///  When &lt; 1, it means VirtualKeyBoard Hided.
///    </summary>
function GetVirtualKeyboardRealHeightSingle;
///    <summary>///
///  GetVirtualKeyboardHeight Include NavigationBar
///    </summary>
function GetVirtualKeyboardTotalHeightSingle

Sera cuestion de actualizar el codigo de ejemplo con alguna de esas dos invocaciones, creo que depende del efecto que se quiere lograr se debe usar una u otra

richy08 21-01-2017 01:57:33

Cita:

Empezado por AgustinOrtu (Mensaje 512517)
Al parecer se olvido de actualizar su proyecto demo

Primero que hay que incluir las unidades modificadas dentro del proyecto, ya que solo esta presenta la Unit1.pas

Luego, la funcion GetVirtualKeyboardHeight fue movida a la seccion de implementacion de la unidad FMX.VirtualKeyboard.Android, por lo tanto no es accesible desde fuera de esa unidad

Ahora hay dos funciones que internamente llaman a la GetVirtualKeyboardHeight, son estas dos:

Código PHP:

///    <summary>
///  GetVirtualKeyboardHeight Exclude NavigationBar
///  When &lt; 1, it means VirtualKeyBoard Hided.
///    </summary>
function GetVirtualKeyboardRealHeightSingle;
///    <summary>///
///  GetVirtualKeyboardHeight Include NavigationBar
///    </summary>
function GetVirtualKeyboardTotalHeightSingle

Sera cuestion de actualizar el codigo de ejemplo con alguna de esas dos invocaciones, creo que depende del efecto que se quiere lograr se debe usar una u otra


Ok dejame probarlo

saludos

richy08 30-01-2017 21:23:57

Buena tarde, solo como retroalimentacion al final lo que hizo que mi aplicacion tronara fue el componente TMS FMX WebGMaps http://www.tmssoftware.com/site/tmsf....asp?s=history , , estoy reportando el caso

saludos

Casimiro Notevi 30-01-2017 22:35:49

Entonces, no era culpa de delphi.

AgustinOrtu 30-01-2017 23:23:10

Me extraña que no lo hayan podido depurar

Creo que hasta con las tecnicas "de la vieja escuela", reconstruyendo la aplicacion poco a poco, era trivial de encontrar el problema


La franja horaria es GMT +2. Ahora son las 20:22:50.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi