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, веб-разработке, поэтому простой ответ будет оценен.

Вам нужно добавить драйвер PostgreSQL JDBC в свой проект, как указано в 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  

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

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

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

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

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

Я столкнулся с той же проблемой; но ошибка, которую я сделал, была зависимость postgre, которую я добавил только в разделе плагинов; После добавления зависимостей postgre (далее) в раздел зависимостей проекта он работал.

  postgresql postgresql 9.1-901-1.jdbc4  

Предполагая, что ваши зависимости правильно настроены (см. Каталог 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.

  • Исходное и наследование в Android
  • Попытка чтения с консоли в Java
  • Как разбить строку, но также сохранить разделители?
  • Интерфейсы со статическими полями в java для совместного использования 'констант'
  • Проект Android не может ссылаться на другой проект в eclipse
  • Как исправить ошибку регистрации Google Cloud Messaging: SERVICE_NOT_AVAILABLE?
  • JsonMappingException: из токена START_ARRAY
  • Как запустить Java-программу без основного метода?
  • Предпочтения в списке Android: есть сводка в качестве выбранного значения?
  • Загрузите файл с Android и покажите прогресс в ProgressDialog
  • Архивная библиотека Android (aar) против стандартной банки
  • Давайте будем гением компьютера.