Spanish Error al abrir base de datos sqllite

aviario

Active Member
Licensed User
Longtime User
Hola, tengo una aplicación funcionando desde hace años sin problemas pero ahora la tablet del cliente se ha actualizado a la versión 14 de android y no me dejaba instalar la aplicación ya que muestra un mensaje que la aplicación no es compatible con esa versión, lo que tuve que hacer es poner en el manifiesto android:targetSdkVersion="29"/> y asi si me deja instalarla pero me da el siguiente error

Open sqlite databasefile fails with "SQLiteCantOpenDatabaseException" (code 14)​


He estado mirando por el foro pero no encuentro una solución

Los datos de la aplicación se encuentran en una carpeta diferente a la que se crea en android/data para que si se desinstala no pierda los datos ya que si lo dejo en la carpeta
android/data/Sicoautoventa.sico/files/autoventa lo elimina todo

hasta ahora para inicializar la base de datos lo hacia así
DBFileDir = File.DirRootExternal & "/Autoventa"

el File.DirRootExternal me devuelve esta ruta ( hasta que se actualizo al android 14
/storage/emulated/0/Autoventa

el File.DirInternal me devuelve esta ruta
/storage/sdcard0/Autoventa

alguien me puede echar una mano?


Un saludo
Paco
 

josejad

Expert
Licensed User
Longtime User
Hola Paco:

En las últimas versiones de Android, se está restringiendo el acceso a File.DirRootExternal

Como Erel indica desde hace tiempo y en especial desde los cambios que está habiendo en Android (especialmente a partir de la versión 12), usar File.DirDefaultExternal o File.DirRootExternal, dará problemas y errores.

El lugar apropiado para guardar los archivos de la app es XUI.DefaultFolder. Si quieres hacer una copia de seguridad antes de desinstalar, deberías usar SaveAs

Lee estos post que te aclararán dudas



saludos,
 
Top