Post Antiguos => General (Antiguo) => Mensaje iniciado por: Terremoto20024 en Marzo 04, 2018, 12:25:08 PM
Título: Problema con Sqlite en Android
Publicado por: Terremoto20024 en Marzo 04, 2018, 12:25:08 PM
Buenos dias comunidad, hoy les pido su ayuda para tratar de solventar esto... me explico:
Arme un sistema de inventario en el cual utilice sqlite y que de maravilla funcionando en la pc pero al exportarlo a Android la aplicación funciona pero no funciona el sistema de inventario(es como si no existiese el archivo .db)
¿Que sera chicos?
¿sqlite funciona en Android? ¿y como hacer funcionar?
¿Debería dejar de usar sqlite y buscar otra forma de guardar los datos? y si ese es el caso a cual.
De antemano muchas gracias, que tengan un feliz dia.
Título: Problema con Sqlite en Android
Publicado por: Moand en Marzo 07, 2018, 07:44:06 AM
Estoy estudiando android y esta misma semana hemos empezado con sqlite para android. Lo único que puede decirte es que la api de android trae un paquete para usar sqlite.
Es un enlace para la creación de una base de datos sqlite en andorid. Claramente con java.
No se si te servirá de algo... Suerte :*
Título: Problema con Sqlite en Android
Publicado por: Mcloud en Agosto 27, 2018, 12:11:39 PM
Buenos días,
Tengo el mismo problema, es de hace unos meses este post, conseguiste resolverlo?
Muchas gracias
Un saludo
Título: Problema con Sqlite en Android
Publicado por: francoe1 en Agosto 27, 2018, 03:31:53 PM
Cita de: Mcloud date=1535364699Buenos días,
Tengo el mismo problema, es de hace unos meses este post, conseguiste resolverlo?
Muchas gracias
Un saludo
El problema puede ser un error de referencias, algo muy común al exportar a diferentes plataformas e intentar abrir algún dato externo.
Unity recomienda utilizar StreamingAssetspara guardar archivos no referenciados a ninguna escena, es decir, si tu tienes 150 FX sound y solo utilizas 1 Unity no compilara todos los recursos solo aquellos que tienen una referencia activa.
Para utilizarlo deberias ver como se hace desde cada plataforma -
En Mac OS o Windows path = Application.dataPath + "/StreamingAssets/mibasededatos.sqlite";
En iOS: path = Application.dataPath + "/Raw/mibasededatos.sqlite";
En Android: path = "jar:file://" + Application.dataPath + "!/assets/mibasededatos.sqlite" ;
Suerte :)
Título: Problema con Sqlite en Android
Publicado por: Mcloud en Agosto 27, 2018, 04:04:49 PM
Cita de: francoe1 date=1535376713El problema puede ser un error de referencias, algo muy común al exportar a diferentes plataformas e intentar abrir algún dato externo.
Unity recomienda utilizar StreamingAssetspara guardar archivos no referenciados a ninguna escena, es decir, si tu tienes 150 FX sound y solo utilizas 1 Unity no compilara todos los recursos solo aquellos que tienen una referencia activa.
Para utilizarlo deberias ver como se hace desde cada plataforma -
En Mac OS o Windows path = Application.dataPath + "/StreamingAssets/mibasededatos.sqlite";
En iOS: path = Application.dataPath + "/Raw/mibasededatos.sqlite";
En Android: path = "jar:file://" + Application.dataPath + "!/assets/mibasededatos.sqlite" ;
Suerte :)
Mil gracias voy a revisar el enlace y probar
Título: Problema con Sqlite en Android
Publicado por: francoe1 en Agosto 27, 2018, 04:57:39 PM
Cita de: Mcloud date=1535378689Mil gracias voy a revisar el enlace y probar
Te recomendaría que te armes una consola para tus juegos, en donde puedas ver el LOG y los errores, y a la misma vez para descubrir si no se conecta por un error de librerias/dependencias o por un error de referencias.
Título: Problema con Sqlite en Android
Publicado por: Mcloud en Agosto 27, 2018, 05:11:08 PM
Cita de: francoe1 date=1535381859Te recomendaría que te armes una consola para tus juegos, en donde puedas ver el LOG y los errores, y a la misma vez para descubrir si no se conecta por un error de librerias/dependencias o por un error de referencias.
Si. estoy en ello gracias, había creado unas escenas y quería ver como quedaba en el móvil y la tablet y de ahí me ha salido el problema de la conexión con la BBDD, pero claro no veo mensaje ni nada, entiendo que es por eso porque se conecta cuando le doy al botón de continuar y....nada de nada, pero claro no tengo ningún mensaje, estoy investigando ahora para ver como dejar un log o algo
Gracias
Título: Problema con Sqlite en Android
Publicado por: francoe1 en Agosto 27, 2018, 05:15:28 PM
Cita de: Mcloud date=1535382668
Si. estoy en ello gracias, había creado unas escenas y quería ver como quedaba en el móvil y la tablet y de ahí me ha salido el problema de la conexión con la BBDD, pero claro no veo mensaje ni nada, entiendo que es por eso porque se conecta cuando le doy al botón de continuar y....nada de nada, pero claro no tengo ningún mensaje, estoy investigando ahora para ver como dejar un log o algo
Gracias
Para esto puedes utilizar la consola de Unity te podes conectar a los equipos a través de IP. y si no, programas una consola unity tiene los eventos de los debug públicos para capturar.
Título: Problema con Sqlite en Android
Publicado por: Mcloud en Agosto 27, 2018, 05:22:31 PM
Cita de: francoe1 date=1535382928Para esto puedes utilizar la consola de Unity te podes conectar a los equipos a través de IP. y si no, programas una consola unity tiene los eventos de los debug públicos para capturar.
la madre del cordero eres un genio!!! no tenia ni idea de que podia hacer eso.....!!!gracias!!!
Título: Problema con Sqlite en Android
Publicado por: Mcloud en Agosto 28, 2018, 12:17:55 AM
Cita de: Mcloud date=1535383351la madre del cordero eres un genio!!! no tenia ni idea de que podia hacer eso.....!!!gracias!!!
Pues gracias a eso he conseguido ver lo que parece que me falla, me dice lo siguiente:
<i>AndroidPlayer(.xx)</i> System.DllNotFoundException: sqlite3 at (wrapper managed-to-native) Mono.Data.Sqlite.UnsafeNativeMethods:sqlite3_open_v2 (byte[],intptr&,int,intptr) at Mono.Data.Sqlite.SQLite3.Open (System.String strFilename, SQLiteOpenFlagsEnum flags, Int32 maxPoolSize, Boolean usePool) [0x00000] in <filename unknown>:0 at Mono.Data.Sqlite.SqliteConnection.Open () [0x00000] in <filename unknown>:0 at AccesosBBDD.OpenDB () [0x0014b] in C:\Users\mgale\Documents\RTG\RPG\Assets\Scripts\AccesosBBDD.cs:46
[/quote]
Actualmente la libreria sqlite3 la tengo dentro de Assets\Plugins\x64\
el resto cuelgan de Plugins, he probado a ponerla dentro de una carpeta "Android" pero nada, y colgando tambien de Plugins, pero tampoco...
porque con string path2 = "jar:file://" + Application.dataPath + "!assets/Personaje.db";
[/quote]
no me funciona en local, no se si he entendido bien el funcionamiento...si yo tengo en local mi BBDD con sus tablas, cuando hago la APK y lo instalo, debo crear una clase/metodo para qeu compruebe que estan creadas? porque no tengo nada controlado...entendia que iba todo en el pack....
gracias de antemano
Título: Problema con Sqlite en Android
Publicado por: francoe1 en Agosto 28, 2018, 02:17:21 AM
Cita de: Mcloud date=1535408275Pues gracias a eso he conseguido ver lo que parece que me falla, me dice lo siguiente:
porque con string path2 = "jar:file://" + Application.dataPath + "!assets/Personaje.db";
no me funciona en local, no se si he entendido bien el funcionamiento...si yo tengo en local mi BBDD con sus tablas, cuando hago la APK y lo instalo, debo crear una clase/metodo para qeu compruebe que estan creadas? porque no tengo nada controlado...entendia que iba todo en el pack....
gracias de antemano
A ver, el problema sigue siendo la ruta, puedes crear una condición para generar la ruta para diferentes plataformas, con flags o con código condicional.
Título: Problema con Sqlite en Android
Publicado por: Mcloud en Agosto 28, 2018, 12:15:41 PM
Cita de: francoe1 date=1535415441A ver, el problema sigue siendo la ruta, puedes crear una condición para generar la ruta para diferentes plataformas, con flags o con código condicional.
En local me funciona sin problema, conecta y pasa a la siguiente escena, pero en la tablet nada, eso si, ahora me da otro error....me dice que el string que le doy a la conexion no es valido
<i>AndroidPlayer(samsung_SM-T813@.........)</i> Invalid ConnectionString format for parameter "jar:file:///data/app/com.mgaSoftware.rtg-1/base.apk!/assets/Personaje.db"
<i>AndroidPlayer(samsung_SM-T813@..........)</i> System.ArgumentException: Invalid ConnectionString format for parameter "jar:file:///data/app/com.mgaSoftware.rtg-1/base.apk!/assets/Personaje.db" at Mono.Data.Sqlite.SqliteConnection.ParseConnectionString (System.String connectionString) [0x00000] in <filename unknown>:0 at Mono.Data.Sqlite.SqliteConnection.Open () [0x00000] in <filename unknown>:0 at AccesosBBDD.OpenDB () [0x000c6] in C:\Users\mgale\Documents\RTG\RPG\Assets\Scripts\AccesosBBDD.cs:51
[/quote]
en la ultima prueba he bajado y actualizado el sdk por si fuera algo, es raro porque lo baje el otro dia para probar, con Android studio....pero bueno
Tambien le he puesto la comprobacion de ver si el fichero existe, pero tanto en local como en la tablet me dice que no....eso si en local funciona sin problema....a ver si puedo revisarlo
gracias de antemano
Título: Problema con Sqlite en Android
Publicado por: Mcloud en Agosto 29, 2018, 11:32:31 AM
Buenas,
no lo consigo....he estado investigando y revisando y cambiando el codigo y plugins, pero no hay manera, no soy capaz....
He visto que en Android al estar comprimido hay que cargarlo con WWW, he creado un metodo que lo descomprime y lo abre, al principio no me dejaba porque no podia acceder a la ruta, pero cree un directorio nuevo en el dispositivo y ya copia la BBDD bien en el, pero ahora me vuelve a decir que no encuentra la dll de sqlite3....
Googleando mas encontre que debia tener dentro de "Plugins\Android\" el fichero "libsqlite3.so", pero tampoco...
Al final despues de Nmil pruebas y descargas me ha quedado asi:
(No se porque no me deja subir imagenes)
dentro de "Plugins tengo las librerias de SQLite, incluida sqlite3
dentro de "Plugins\Android\x86\" esta libsqlite3.so