Java.lang.ClassNotFoundException: org.postgresql.Driver, Android
Estoy ejecutando Eclipse en Windows.
Después de este tutorial descargé JDBC4, lo agregué a mi ruta de construcción usando Project> Properties> add JAR Externo, buscado para el archivo, funcionó (el archivo .classpath
muestra la ruta correcta de lib).
- Error del compilador: com.sun.tools.javac.code.Symbol $ CompletionFailure: archivo de clase para rx.Observable no encontrado
- Daga con Android: ¿Cómo inyectar el contexto cuando se utiliza MVP?
- ¿Cuál es el mejor protocolo de comunicación de cliente de servidor para usar en Android e iOS?
- No se puede convertir de android.support.v4.app.Fragment a android.app.Fragment
- DialogFragment.show cuelga la aplicación
El paquete aparece en mi carpeta Bibliotecas referenciadas, así 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 golpeó con esta gran pila larga de traza a partir de
java.lang.ClassNotFoundException: org.postgresql.Driver
(Puedo proporcionar más si es necesario)
He intentado include org.postgresql.*;
Pero eso tampoco ayudó. También he probado el JDBC3 pero tampoco hay suerte allí.
Miré Driver JDBC PostgreSQL con Android que proporcionó una respuesta vaga diciendo que sería mejor sólo con HTTP + JSON. Lo que nunca he usado.
Soy nuevo a Android, postgresql, desarrollo web, por lo que una respuesta simple sería apreciada.
- PreferenceFragment.findPreference devuelve siempre NULL
- Agregar una PrimaryKey a un Realm con toneladas de datos duplicados
- Números al azar
- Cómo burlar un objeto inyectado que no se declara en el módulo?
- Implementar un RecyclerView en un fragmento
- Stripe Card id usando un token en Android
- Xamarin .jar binding - 'Bitmap no se pudo encontrar'
- ¿Cómo selecciono la cámara correcta para encender la linterna, en Android 2.2?
Debe poner el paquete jar en la carpeta lib (WebContent-WEB-INF-lib) y hacer clic con el botón derecho en el paquete jar package-build path-add to build path
Debe agregar el controlador JDBC de PostgreSQL en su proyecto como se menciona en Mvnrepository .
Grandle :
// http://mvnrepository.com/artifact/postgresql/postgresql compile group: 'postgresql', name: 'postgresql', version: '9.0-801.jdbc4'
Maven :
<dependency> <groupId>postgresql</groupId> <artifactId>postgresql</artifactId> <version>9.0-801.jdbc4</version> </dependency>
También puede descargar el JAR e importar a su proyecto manualmente.
Es un problema CLASSPATH; El controlador JDBC de PostgreSQL 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 construcción es añadirlo al CLASSPATH. Tienes que entender cómo funciona CLASSPATH sin las ruedas de entrenamiento de Eclipse para ayudarte.
Descargar y agregar el archivo JAR JDBC a la ruta de acceso construida de la herramienta que está utilizando puede ser una solución temporal ya que ninguna de las soluciones anteriores funcionó en mi caso.
Suponiendo que sus dependencias están correctamente configuradas (vea el directorio de libs
en Android SDK versión 17 o superior , como se señala en un comentario), debería ser capaz de conseguir que el controlador 9.2 funcione registrándolo explícitamente con el gestor de controladores.
En lugar de:
Class.forName("org.postgresql.Driver");
Utilizar:
DriverManager.register(new org.postgresql.Driver());
(También he intentado con el tarro 9.3-1100-jdbc41, pero esto no funcionaría.)
Tenga en cuenta que, como explicó Craig Ringer en una respuesta a una pregunta duplicada , el uso de JDBC desde Android raramente es una buena idea, ya que las conexiones JDBC no se adaptan bien a los patrones de uso de red generalmente utilizados por los dispositivos Android.
- Compilación de la biblioteca de Android-OpenCV con Cygwin
- ¿Cómo enviar múltiples imágenes de las que están presentes en la carpeta de la unidad de google en android mediante programación?