Foros Club Delphi

Foros Club Delphi (http://www.clubdelphi.com/foros/index.php)
-   Desarrollo en Delphi para Android (http://www.clubdelphi.com/foros/forumdisplay.php?f=57)
-   -   APK no funciona en Release en SQLite (http://www.clubdelphi.com/foros/showthread.php?t=93384)

connor 01-09-2018 21:17:55

APK no funciona en Release en SQLite
 
Tengo otra aplicación con bases de datos SQLite, compilo en modo release y se instala en el movil pero a la hora de ejecutar la aplicacion sale una ventana en negro y luego se sale y no se ejecuta la aplicacion, que podria ser?

Tengo instalados los SDK's, la base de datos de SQLite esta en el deployment como directorio assets\ y la leo con; TPath.Combine(TPath.GetSharedDocumentsPath, 'database.db') asy y todo no funciona, ¿que podria faltar?.

manelb 02-09-2018 14:07:33

Dices que no funciona en Release... En debug si?

Que componentes utilizas de acceso a datos?

Saludos.

connor 07-09-2018 15:27:54

Componentes firedac, con una aplicación para móviles es Explorer he logrado ver que el ejecutable como la base de datos sqlite están grabados en el móvil no entiendo entiendo porque no funciona.

Neftali [Germán.Estévez] 10-09-2018 09:34:27

Lo normal en estos casos es añadir un Log con lo que se está ejecutando para detectar posibles problemas, de otra forma es complicado.
Incluso intentar debug paso a paso.


Permisos, ubicación de archivos, librerías,... Pueden ser tantas cosas...

turbopascual5.0 10-09-2018 23:58:45

Yo en el deploy la he puesto en ./assets/internal


y la leo con TPath.Combine(TPath.GetDocumentsPath,'trabajos.db');


En GetSharedDocumentsPath me ha dado muchos problemas, la aplicación se cerraba.


Saludos

connor 12-09-2018 18:28:46

Gracias por responder.
Neftali como creo el log en delphi? disculpen la pregunta.

Neftali [Germán.Estévez] 13-09-2018 09:16:19

Cita:

Empezado por connor (Mensaje 528378)
Gracias por responder.
Neftali como creo el log en delphi? disculpen la pregunta.


No hace falta nada muy complejo.
Simplemente un procedimiento al que le pases un parámetro (string) y lo añada a un memo (oculto) y guarde el memo en Disco en un fichero.
Yo habitualmente lo tengo en el programa desde el inicio en una pestaña mientras desarrollo de forma que es visible (y además se graba en dsco) y al final, lo único que hago es ocultarlo y desactivar la grabación.


Si el programa se cierra de forma repentina, el fichero te puede servir para saber qué es lo último que se estaba ejecutando.

connor 14-09-2018 22:26:10

Buenas Neftali, entiendo que es un archivo de texto y como crearlo, pero lo que no entiendo es, como deplhi genera ese archivo, cuando se ejecuta la aplicación se tiene que activar algo?, configurar algo?, como se hace para que la aplicacion mande informacion al archivo LOG.

Neftali [Germán.Estévez] 18-09-2018 11:47:11

Cita:

Empezado por connor (Mensaje 528410)
lo que no entiendo es, como deplhi genera ese archivo, cuando se ejecuta la aplicación se tiene que activar algo?, configurar algo?, como se hace para que la aplicacion mande informacion al archivo LOG.


Tienes que hacerlo de forma manual. Los pasos así rápido son los siguientes:


1) Crear un Memo en algíun lugar de la aplicación (puede estar oculto)
2) Crea un procedimiento para añadir mensajes al Log y grabarlo en disco.


Código Delphi [-]
preocedure Log(AMessage:string);
var
  AFile:String;
begin
  // Path del fichero a crear (Android)
  AFile := IncludeTrailingPathDelimiter(TPath.GetSharedDocumentsPath()) + 'FicheroLog.txt';
  // Añadirlo al Memo el mensaje
  Memo1.Add(AMessage);
  // Grabarlo en disco
  Memo1.SaveToFile(AFile);
end;



3) A medida que vayas haciendo cosas en tu programa, vas añadiendo líneas como esta:


Código Delphi [-]
  ...

  Log('Iniciando programa...');
  ...
  Log('Abriendo tablas MySQL');
  ...

connor 19-09-2018 18:28:46

Me he dando cuenta de algo, que el programa completo se instala bien, pero en la carpeta "deployments" se instala con los slash invertidos como en windows asi .\assets\internal\basededatos.db y deberia instalarse asi ./assets/internal/basededatos.db quisas esa sea la falla.

Casimiro Notevi 19-09-2018 18:37:50

Cita:

Empezado por connor (Mensaje 528498)
.\assets\internal\basededatos.db

A ver si se guarda con la ruta entre comillas y lo toma como si el nombre de la base de datos fuese "\assets\internal\basededatos.db"

connor 19-09-2018 19:34:46

carpeta deployinfo archivo de texto deployedassets.txt esto guarda .\assets\internal\basededatos.db
No funciona llevo un mes y nada tiro la tolla, lo dejo, hice una bonita aplicacion que serviria para miles de usuarios pero no funciona en el celular.

Casimiro Notevi 19-09-2018 22:23:21

No podemos ayudar mucho sin más información. Pero programas android que funcionan con sqlite hay tropecientos mil, por lo menos.
El tuyo también debería de funcionar.

connor 02-10-2018 00:47:02

Pongo esta captura para explicar lo siguiente.
He visto videos den youtube de como ensamblan un programa con SQLite y compenentes FireDAC, y luego configuranr el deployment ponen permisos suben la base de datos y listo funciona en el movil, hago lo mismo y nada de nada, pero he notado algo curioso en la carpeta (Libraries) en mi compilador estaba sin datos, pero en la del video de youtube estaba con datos porque salia el signo + entonces pude ver que archivbos habia los busque en delphi xe7 y encontre que en la carpeta BIN se encontraban librerias java, las inclui compile y me da error, no se quisas sea eso lo que faltaba pero ahora no compila.

https://imgur.com/a/hRd7J9l

Error al compilar con librarias java
https://imgur.com/a/gPf2c89

connor 09-10-2018 22:22:02

Ya di con la solucion, para los que quieran usar delphi xe7 u versiones superiores o inferiores, con sqlite o iblite en android, tan facil, pequeños trucos que aqui no les diran jamas.

Casimiro Notevi 09-10-2018 22:45:59

Cita:

Empezado por connor (Mensaje 528900)
Ya di con la solucion, para los que quieran usar delphi xe7 u versiones superiores o inferiores, con sqlite o iblite en android, tan facil, pequeños trucos que aqui no les diran jamas.

¿Qué quieres decir? :confused::confused::confused:


La franja horaria es GMT +2. Ahora son las 21:18:12.

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