Controlador JDBC PostgreSQL con Android [duplicado]

Estoy tratando de conectar mi aplicación de Android a un servidor (PostgreSQL) con el controlador JDBC, pero tengo este error:

java.lang.ClassNotFoundException: org.postgresql.Driver
...
Caused by: java.lang.NoClassDefFoundError: org/postgresql/Driver
... 12 more
Caused by: java.lang.ClassNotFoundException: org.postgresql.Driver
...
java.sql.SQLException: No suitable driver

Intenté muchas cosas, como agregar la dirección del controlador en la Ruta, pero nada funcionó. Seguí este tutorial: http://appliedcoffeetechnology.tumblr.com/post/10657124340 y agregué el controlador JDBC4 (también probé el JDBC3), en Build Path.

¿Todos pueden ayudarme?

preguntado el 03 de mayo de 12 a las 17:05

Me encanta esta presentación, es una pena que no haya un código de muestra para la resolución más avanzada (con API de cuenta)... -

Si está utilizando Android SDK r17 o posterior, asegúrese de que jdbc jar esté en la carpeta libs/. SDK ahora lo agregará automáticamente a classpath (mensajes que no necesita agregarlo manualmente para construir la ruta usted mismo). -

Ok, es una presentación interesante, pero no puede resolver mi problema de reconocimiento en mi código. ¿Alguna idea de por qué no se puede encontrar mi controlador? -

1 Respuestas

Si bien no es la respuesta estricta a su pregunta, tengo una sugerencia.

No intente usar JDBC en el dispositivo Android directamente. Te ahorrarás muchas molestias de esa manera. Escribí sobre eso con más detalle en la pregunta "JDBC vs Web Service for Android".

Escriba la lógica de su base de datos en un servidor de aplicaciones accesible desde la web y hable con ese servidor de aplicaciones a través de HTTP+JSON, SOAP, XML-RPC o similar. Esto será mucho más eficiente en el ancho de banda y puede hacer que su aplicación sea mucho más tolerante a los problemas de conectividad de esa manera. También le evita tener que exponer su servidor de base de datos directamente a Internet; no es una gran preocupación con PostgreSQL siempre que use SSL, pero aún mejor no tener que hacerlo en absoluto.

Al usar JAX-RS en JBoss AS 7, Tomcat 7 o similar, debería poder armar una API de servicios web RESTful XML/JSON para su aplicación con bastante facilidad. La gente también parece juntar las API REST/JSON bastante rápido con PHP.

Puede escribir una API web JSON/REST en prácticamente cualquier idioma que desee con diversos grados de facilidad. solo busca REST server yourlanguagename.

"Kaw" ha señalado en una respuesta eliminada que también hay controladores JDBC virtuales que envían solicitudes a través de HTTP. Estos pueden ser adecuados para algunas aplicaciones.

contestado el 23 de mayo de 17 a las 11:05

Ok, gracias por la precisión :) - toshiro92

Usted tenía razón; no es una respuesta a la pregunta. HAY momentos en los que conectarse directamente a una base de datos es apropiado, incluso si no lo cree así. Además, Postgres, en particular, tiene una seguridad muy sólida, por lo que las preocupaciones habituales sobre la exposición del puerto no son relevantes. - ricardo t

@RichardT Android ha avanzado mucho desde que escribí esto, pero sigo pensando que ir a través de los servicios web casi siempre será la respuesta correcta. Incluso si solo se encuentra dentro de un área con buen WiFi, sigue siendo un problema lidiar con las paradas y los cortes en la conexión JDBC. Es mucho más agradable usar algo sin estado con solicitudes idempotentes, por lo que puede volver a emitirlo si tarda demasiado. Todavía me gustaría una respuesta adecuada a esta pregunta. - craig timbre

Todavía no parece la respuesta a la pregunta... - Audrius Meškauskas

@RegisGoogle. "CRUD REST API [mi lenguaje de programación preferido aquí]" - craig timbre

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.