java.lang.ClassNotFoundException: org.postgresql.Driver, Android

Estoy ejecutando Eclipse en Windows.

Después de este tutorial descargué JDBC4, lo agregué a mi ruta de comstackción utilizando Proyecto> Propiedades> Agregar JAR externo, examinado para el archivo, funcionó (el archivo .classpath muestra la ruta de acceso de la lib correcta).

El paquete aparece en mi carpeta Bibliotecas de referencia, por lo que continúo con el tutorial.

  import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; .... public void open () { try { Class.forName("org.postgresql.Driver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } try { conn = DriverManager.getConnection(url, username, password); } catch (SQLException e) { e.printStackTrace(); } } 

Creo que sería tan simple como eso, pero me golpean con esta larga traza de stack larga que comienza con

  java.lang.ClassNotFoundException: org.postgresql.Driver 

(Puedo proporcionar más si es necesario)

Intenté include org.postgresql.*; pero eso tampoco ayudó. También probé el JDBC3 pero tampoco tuve suerte allí.

Miré el Driver JDBC PostgreSQL con Android que proporcionaba una respuesta vaga que decía que sería mejor usar HTTP + JSON. Que nunca he usado

Soy nuevo en Android, postgresql, desarrollo web, por lo que una respuesta simple sería apreciada.

Necesita agregar el controlador PostgreSQL JDBC en su proyecto como se menciona en Mvnrepository .

Gradle :

 // http://mvnrepository.com/artifact/postgresql/postgresql compile group: 'postgresql', name: 'postgresql', version: '9.0-801.jdbc4' 

Maven :

  postgresql postgresql 9.0-801.jdbc4  

También puede descargar el JAR e importar a su proyecto manualmente.

Debe colocar el paquete jar en la carpeta lib (WebContent-WEB-INF-lib), y hacer clic derecho en el paquete jar-build path-add para construir la ruta

Es un tema CLASSPATH; el controlador PostgreSQL JDBC no está disponible cuando el cargador de clases intenta cargarlo. Debe agregarlo a su CLASSPATH correctamente.

Si funciona en Eclipse, es porque agregar un JAR a la ruta de comstackción lo está agregando a CLASSPATH. Debe comprender cómo funciona CLASSPATH sin las ruedas de entrenamiento Eclipse para ayudarlo.

Descargar y agregar el archivo JDBC JAR a la ruta construida de la herramienta que está utilizando puede ser una solución temporal ya que ninguna de las soluciones anteriores funcionó en mi caso.

Me enfrenté al mismo problema; pero el error que cometí fue la dependencia de postgregación que agregué solo en la sección de complementos; Después de agregar la dependencia de postgrejo (lo siguiente) en la sección de dependencias del proyecto, funcionó.

  postgresql postgresql 9.1-901-1.jdbc4  

Suponiendo que sus dependencias están configuradas correctamente (consulte el directorio libs en la versión 17 o superior de Android SDK , como se señala en un comentario), debe poder hacer funcionar el controlador 9.2 registrándolo explícitamente con el administrador del controlador.

En lugar de:

 Class.forName("org.postgresql.Driver"); 

Utilizar:

 DriverManager.register(new org.postgresql.Driver()); 

(También he intentado con el jar 9.3-1100-jdbc41, pero esto no funcionaría).

Tenga en cuenta que, como explicó Craig Ringer en una respuesta a una pregunta duplicada , usar JDBC de Android rara vez es una buena idea, porque las conexiones JDBC no son adecuadas para los patrones de uso de red generalmente utilizados por los dispositivos Android.