![]() |
Actualizar motor sqlite en android
Hola
¿Alguien sabe si es posible actualizar el motor de SQLite en Android? Pregunto porque en una App uso una BD que hice con DB Browser usando campos de tipo Integer,Text,Blob,Real y Numeric (que son los que muestra DB Browser) y la App funciona perfectamente en Android 8.1, pero vi que SQLITE Expert maneja mas tipos de datos como Boolean, Date, etc y modifique los campos de la BD y ahora la App se cuelga cuando trato de abrir una tabla, si dejo los campos como antes, funciona otra vez, por eso asumo que el problema es la versión de SQLite que trae android 8.1 Si alguien sabe como solucionar esto le agradecere su ayuda. Saludos |
No puedes hacer nada, salvo que tengas la opción de "Actualizar el sistema" a una versión más nueva.
La otra opción es tener el dispositivo "rooteado", así podrías intentarlo, aunque tampoco sería fácil. Los problemas de ese tipo son habituales, por eso hay que diseñar la BD y usar selects y demás que cumplan con sistemas obsoletos, porque no sabes qué versiones tendrán los posibles usuarios. |
Gracias por responder Casimiro, lo suponía ya que no encontré en ningun lado como hacerlo, (había una con la versión 3.5 atrsada por cierto por medio de root), tendré que hacerlo como comentas, por compatibilidad ya que el programa se usara en muchos equipos con diferentes versiones de android, la otra opción que podría hacer, es usar otra base de datos, por allí lei que firebird es una buena opción, voy a investigar, saludos.
|
Por lo poco que vi, SqlExpert es un IDE/GUI para usar Sqlite, pero no un motor. De ser así, en tu caso dudo mas que SqlExpert corrompa el archivo a que que falle la libSqlite. Solo con el fin de probar, te recomiendo hacer lo siguiente
Si no falla, con ese resultado podrías generar la base datos desde cero desde la consola, garantizando compatibilidad. Por otro lado, si SelExpert fuera un motor/librería/fork de sqlite, desconozco en Android, pero hablando del Linux, y considerando que uno es hijo del otro, capaz te sirva saber lo siguiente: Sqlite es un motor de una librería única. o sea que funcionalmente es solo requiere un archivo en el sistema operativo. Esto implica que para que tu aplicativo pueda funcionar, solo debería encontrar en su search path, la librería esperada. Y como siempre el search path, se inicia por la ruta de ejecución, para " Actualizar motor sqlite", como dice el asunto del hilo, solo deberíamos copiar la librería en la ruta de instalación. Obviamente esto es exclusivo de nuestra aplicación. Saludos. |
Cita:
|
Hola Federico
Lo que entiendo es que la base de datos no se corrompe al usar uno u otro editor SQLite, como comentaba el SQLite que trae integrado el Android 8.1 como es obvio es antiguo y por lo mismo se bloquea la App, pero si regreso los campos al formato anterior funciona. Lo que comentas del motor supongo es algo similar a MySQl que requiere una DLL para que se ejecuten los programas en Windows, ahora en Android cual vendría siendo el equivalente de la "DLL" para SQLite? En la página de SQLite vi que hay unos archivos para Android pero ni idea de como usarlos. |
Cita:
En Linux dependiendo de la distribución, la librería suele ser libsqlite3.so. Donde se usa la práctica común de dejar una archivo por versión y un symlink genérico a ese nombre. Por lo que vi en Android, parece ser libsqliteX.so, pero como es dependiente de la arquitectura hay un binario por cada arquitectura soportada. Cita:
Cita:
¿Pudiste abstaer código de la aplicación como para ver en que momento se bloquea? |
>>¿Pudiste abstaer código de la aplicación como para ver en que momento se bloquea?
Si claro, cuando abre el Query o sea cuando llega a quConsulta.Open; se bloquea, ni siquiera da error. Hay manera de que mi App utilice el libsqliteX.so (descargado de la pagina de SQLite) y tener acceso de esa manera a la última versión? Bastará con que se copie en la misma carpeta de la APP? Saludos |
No debería bloquearse, simplemente mostrar un mensaje de error.
Eso suena raro. |
Cita:
Cita:
|
Cita:
Voy a hacer la prueba copiando el archivo que descargue para Android de la página de SQLite (agregandolo en Deployment) para ver si funciona, en caso de que no, estoy pensando probar Firebird con Zeoslib |
La franja horaria es GMT +2. Ahora son las 08:01:12. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi