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

Я запускаю Eclipse в Windows.

После этого урока я загрузил JDBC4, добавил его в мой путь сборки, используя Project> Properties> add External JAR, просмотрев файл, он работал (файл .classpath показывает правильный путь к lib).

Пакет появляется в моей папке «Связанные библиотеки», поэтому я продолжаю руководство.

  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(); } } 

Я думаю, что это будет так просто, но я получаю удар с этой большой длинной трассировкой стека, начиная с

  java.lang.ClassNotFoundException: org.postgresql.Driver 

(Я могу предоставить больше, если необходимо)

Я попытался include org.postgresql.*; Но это тоже не помогло. Я также пробовал JDBC3, но там не повезло.

Я посмотрел на Driver JDBC PostgreSQL с Android, который дал смутный ответ, говоря, что мне будет лучше использовать HTTP + JSON. Который я никогда не использовал.

Я новичок в Android, postgresql, веб-разработке, поэтому простой ответ будет оценен.

Solutions Collecting From Web of "Java.lang.ClassNotFoundException: org.postgresql.Driver, Android"

Вы должны поместить пакет jar в папку lib (WebContent-WEB-INF-lib) и щелкнуть правой кнопкой мыши по пути создания пакета jar-build-add для сборки пути

Вам нужно добавить драйвер PostgreSQL JDBC в свой проект, как указано в Mvnrepository .

Гранд :

 // 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> 

Вы также можете загрузить JAR и импортировать его в свой проект вручную.

Это проблема CLASSPATH; Драйвер PostgreSQL JDBC недоступен, когда загрузчик классов пытается загрузить его. Вам нужно добавить его в свой CLASSPATH правильно.

Если он работает в Eclipse, это связано с тем, что добавление JAR в путь сборки добавляет его в CLASSPATH. Вы должны понимать, как CLASSPATH работает без обучающих колес Eclipse, чтобы помочь вам.

Загрузка и добавление JAR-файла JDBC в построенный путь используемого инструмента может быть временным решением, так как ни одно из вышеперечисленных решений не разработано в моем случае.

Предполагая, что ваши зависимости правильно настроены (см. Каталог libs в Android SDK версии 17 или выше , как указано в комментарии), вы должны иметь возможность заставить драйвер 9.2 работать, зарегистрировав его явно с помощью диспетчера драйверов.

Вместо:

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

Использование:

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

(Я также пытался использовать банку 9.3-1100-jdbc41, но это не сработало.)

Обратите внимание, что, как объяснил Крейг Рингер в ответ на дублированный вопрос , использование JDBC с Android редко является хорошей идеей, поскольку соединения JDBC не очень хорошо подходят для моделей использования сети, обычно используемых устройствами Android.