2013-02-09 4 views
0

Описание В режиме отладки и с помощью Eclipse, когда этот код для Android процесса линии: кон = DriverManager.getConnection (ConnectionURL); это производят ошибки в Logcat, как, например, как:Не удалось найти класс «» java.sql.SQLFeatureNotSupportedException

ОШИБКИ

Could not find class 'java.sql.SQLFeatureNotSupportedException', referenced from method com.microsoft.sqlserver.jdbc.SQLServerConnection.createArrayOf 
02-09 08:15:46.325: W/dalvikvm(367): VFY: unable to resolve new-instance 828 (Ljava/sql/SQLFeatureNotSupportedException;) in Lcom/microsoft/sqlserver/jdbc/SQLServerConnection; 
02-09 08:15:46.325: D/dalvikvm(367): VFY: replacing opcode 0x22 at 0x0003 
02-09 08:15:46.325: D/dalvikvm(367): VFY: dead code 0x0005-000e in Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;.createArrayOf (Ljava/lang/String;[Ljava/lang/Object;)Ljava/sql/Array; 
02-09 08:15:46.385: I/dalvikvm(367): Failed resolving Lcom/microsoft/sqlserver/jdbc/SQLServerNClob; interface 818 'Ljava/sql/NClob;' 
02-09 08:15:46.385: W/dalvikvm(367): Link of class 'Lcom/microsoft/sqlserver/jdbc/SQLServerNClob;' failed 
02-09 08:15:46.395: E/dalvikvm(367): Could not find class 'com.microsoft.sqlserver.jdbc.SQLServerNClob', referenced from method com.microsoft.sqlserver.jdbc.SQLServerConnection.createNClob 
02-09 08:15:46.395: W/dalvikvm(367): VFY: unable to resolve new-instance 563 (Lcom/microsoft/sqlserver/jdbc/SQLServerNClob;) in Lcom/microsoft/sqlserver/jdbc/SQLServerConnection; 

Код Это только одна часть этого класса:

import java.sql.*; 

public class ConnectURL { 

    public static void main() { 

     // Create a variable for the connection string. 
     String connectionUrl = "jdbc:sqlserver://192.168.1.20:1433;" + 
      "databaseName=BD;user=sa;password=pass1;integratedSecurity=true;"; 

     // Declare the JDBC objects. 
     Connection con = null; 
     Statement stmt = null; 
     ResultSet rs = null; 

      try { 
       // Establish the connection. 
       Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
       con = DriverManager.getConnection(connectionUrl); 
.... 

Примечание У меня есть скачать Microsoft sqlserver jdbc 4.0 в папке, и в этом проекте есть путь сборки Java с этим маршрутом.

ответ

0

java.sql.SQLFeatureNotSupportedException доступен только с уровня API 9.

Я думаю ваш ориентируетесь на более низкий уровень API.

+0

Да, вы правы. Теперь я использовал API> 8, и эта ошибка не отображается. Однако теперь появилась новая ошибка: 01-29 11: 54: 20.387: E/dalvikvm (1137): Не удалось найти класс 'javax.sql.XAConnection', на который ссылается метод com.microsoft.sqlserver.jdbc.SQLServerConnection.poolCloseEventNotify 01-29 11: 54: 20.387: W/dalvikvm (1137): VFY: невозможно разрешить экземпляр 913 (Ljavax/sql/XAConnection;) в Lcom/microsoft/sqlserver/jdbc/SQLServerConnection; –

+0

Если вы решите проблему с вопросом, пожалуйста, примите (и повысьте, если это поможет). Что касается XAConnection: этот класс НЕ является частью Android API. Я думаю, вам это нужно, потому что ваш менеджер транзакций настроен на работу с несколькими базами данных (или внешним ресурсом). Если вам действительно нужна эта функция, вам придется найти другую версию драйвера, не полагаясь на «javax.sql.XAConnection». Если у вас только одна БД, этот класс не требуется, поэтому я предлагаю вам более глубоко изучить возможные проблемы с конфигурацией с вашим драйвером. – ben75

+0

Извините, когда вы написали «пожалуйста, примите ...», вы ссылаетесь на кнопку «Да» внизу, где указано «Был ли этот пост ...?». В этом случае я принял это. Поэтому, ссылаясь на эту проблему, у меня есть только удаленная база данных на внешней машине, но этот класс необходим, поэтому кажется. Более того, я видел другую аналогичную проблему с этой ошибкой, и она указывает на установку JEE, поэтому я должен это сделать, и я смог добавить import javax.sql. *; но проблема сохраняется. –

Смежные вопросы