athos07 2 Report post Posted May 4, 2020 Buenos dias: Vengo intentando solucionar un conflicto que me surgio al testear mi aplicacion en un dispositivo con OS Android. La aplicacion consiste en hacer consultas a una base de datos que se encuentra en un hosting externo. Dentro de Unity la aplicación logra conectarse correctamente a dicho server mediante MySql, pero al compilar el programa y testearlo, resulta ignorar por completo la conexion. Desconozco si el problema surge desde los permisos del hosting para permitir el acceso a cierto usuarios o si al compilar en Android necesito solicitar permisos al usuario del dispositivo para realizar dichas conexiones. Alguien tuvo este conflicto o tiene idea de como podria solucionarse? desde ya muchas gracias. Quote Share this post Link to post Share on other sites
francoe1 536 Report post Posted May 4, 2020 Activa la opción de Script Debug, seguramente la librería que estas utilzando para conectarte a MySQL no es compatible con android. Quote Share this post Link to post Share on other sites
leocub58 208 Report post Posted May 4, 2020 Si tu dominio no tiene certificado SSL unity bloquea la conexión en dispositivos moviles. Quote Share this post Link to post Share on other sites
athos07 2 Report post Posted May 4, 2020 hola @francoe1 gracias por responder. ya probe y no hubo ningun resultado. hola @leocub58 gracias por responder. estoy usando un hosting free, por ende puede que quizas no tenga certificado SSL. voy a investigar sobre el tema y te confirmo si era eso. gracias Quote Share this post Link to post Share on other sites
athos07 2 Report post Posted May 5, 2020 @leocub58 el sitio web tiene SSL certificado. dudo que sea eso lo que ocasione el problema. gracias igual por la ayuda. seguire investigando Quote Share this post Link to post Share on other sites
leocub58 208 Report post Posted May 5, 2020 5 minutes ago, athos07 said: @leocub58 el sitio web tiene SSL certificado. dudo que sea eso lo que ocasione el problema. gracias igual por la ayuda. seguire investigando Entonces es muy probable que tenga las conexiones externas al dominio bloqueadas. Es muy común en hostings frees. ¿Qué servicio de hosting estás utilizando? Quote Share this post Link to post Share on other sites
athos07 2 Report post Posted May 5, 2020 12 minutes ago, leocub58 said: Entonces es muy probable que tenga las conexiones externas al dominio bloqueadas. Es muy común en hostings frees. ¿Qué servicio de hosting estás utilizando? Tambien sospecho que sea eso. estoy utiliando remotemysql.com Quote Share this post Link to post Share on other sites
francoe1 536 Report post Posted May 5, 2020 ¿De qué manera te estas conectando a la base de datos? Quote Share this post Link to post Share on other sites
athos07 2 Report post Posted May 5, 2020 1 hour ago, francoe1 said: ¿De qué manera te estas conectando a la base de datos? A traves de MySql Quote Share this post Link to post Share on other sites
francoe1 536 Report post Posted May 5, 2020 23 minutes ago, athos07 said: A traves de MySql ¿Que libreria estas utilizando? Quote Share this post Link to post Share on other sites
athos07 2 Report post Posted May 5, 2020 Uso esta libreria MySql.Data.MySqlClient; este es el codigo con el que logro conectarme, al menos desde el editor de unity conString = "Server=server;" + "Database=dataBaseName;" + "User ID=username;" + "Password=password;" + "pooling=false;" + "CharSet=utf8"; myQuery = "SELECT Nombre FROM CLIENTES"; MySqlConnection conn = new MySqlConnection(conString); CreateMySqlDataReader(myQuery, conn); Quote Share this post Link to post Share on other sites
francoe1 536 Report post Posted May 5, 2020 Intenta agregar Encrypt=true; SslMode=Preferred; Sin embargo creo que es un problema de la librería con Android, estoy seguro de que existe un problema y necesitas un wrapper, ahora mismo no lo recuerdo Quote Share this post Link to post Share on other sites
athos07 2 Report post Posted May 5, 2020 4 hours ago, francoe1 said: Intenta agregar Encrypt=true; SslMode=Preferred; Sin embargo creo que es un problema de la librería con Android, estoy seguro de que existe un problema y necesitas un wrapper, ahora mismo no lo recuerdo intentare agregar eso. Por otra parte, se me ocurrio conectarlo al Android Device Monitor. para intentar captar los mensajes de consola del dispositivo en el momento que deberia conectarse al server. y capture los siguientes errores Quote Share this post Link to post Share on other sites
Moand 9 Report post Posted May 5, 2020 Intenta comprobar si pasa en diferente versiones de Android. Si solo pasa en las más nuevas puede que sea por permisos Quote Share this post Link to post Share on other sites
J Montes 71 Report post Posted May 5, 2020 (edited) Buscando el error aparece una referencia en: https://answers.unity.com/questions/42955/codepage-1252-not-supported-works-in-editor-but-no.html?_ga=2.247957831.1540783762.1588396663-1855270041.1569288163 En resumen, la página de códigos usada por ese cliente está en una DLL que no está disponible en el player, pero sí en el editor. Se trata de I18N.dll and I18N.West.dll, y parece que puedes copiarlas a tu proyecto para que se incluyan (mala solución). Alternativamente, utiliza una versión de la bibilioteca cliente de MySQL que esté construida para usar UTF-8 por defecto. Porque en general, me parece mala idea usar como transporte una codificación que no sea UTF-8 (no sé por qué alguien usaría 1252 por defecto hoy en día, igual es la de tu sistema Android o no sé). O alternativamente, y lo que te recomiendo buscar, es asegúrate de usar UTF-8 en tu propio código, así evitarás sorpresas en función del dispositivo en el que te ejecutes. No sé si es posible hacer esto con la biblioteca MySQL que usas, porque tu cadena de conexión ya indica utf8, quizá (a ver si hay suerte) prueba a añadir el punto y coma que falta tras "CharSet=utf8": conString = "Server=server;" + "Database=dataBaseName;" + "User ID=username;" + "Password=password;" + "pooling=false;" + "CharSet=utf8;"; Aunque yo no creo que eso debiera ser el problema. Tampoco me convence ese "pooling" ahí en medio, y según la documentación, (https://dev.mysql.com/doc/connector-net/en/connector-net-connections-string.html) ese "User ID" debería ser simplemente "uid". Tampoco sé si las mayúsculas / minúsculas importan, he encontrado ejemplos en ambos formatos. A ver si te sirve algo. Ya comentarás. Y por curiosidad, ese "databasename", "username" o "password" ¿tienen acentos o caracteres no-ASCII?. Edited May 5, 2020 by J Montes Quote Share this post Link to post Share on other sites