2013-09-06 5 views
3

Я занимаюсь подключением SqlServer в Android.Класс не найден исключение, пока класс добавлен

Я включаю в него все необходимые файлы jar.

enter image description here

Buildpath оснастки: Линия

enter image description here

Ошибка:

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); 

ORDER & ЭКСПОРТ:

enter image description here

Редактировать

package com.example.sqlservercall; 

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.Statement; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.widget.TextView; 


public class MainActivity extends Activity { 


    String url="jdbc:sqlserver://10.0.2.2;instance=14GRAFICALI\\MSSQLSERVER2008;databaseName=AndroidDB;integrated security=true"; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 


     TextView tvData=(TextView)findViewById(R.id.tvSelectedData); 

     try { 
      Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance(); 
      Connection conn =DriverManager.getConnection(url);     

      System.out.println("connected"); 
      Statement statement=conn.createStatement(); 
      ResultSet resultSet=statement.executeQuery("select * from AndroidDB"); 
      while(resultSet.next()){ 
       tvData.setText(" Data1 : "+resultSet.getString(1)+" Data 2 : "+resultSet.getNString(2)); 
      } 

     } catch (Exception e) { 
      e.printStackTrace(); 
      tvData.setText(e.getMessage()); 
     } 



    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

} 

Exception Подробно:

enter image description here

NEW Ошибка afeter Проверка банки в порядке и экспорта:

Unable to execute dex: Multiple dex files define Lcom/microsoft/sqlserver/jdbc/ActivityCorrelator$1; 
[2013-09-06 18:24:04 - SQLServerCall] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/microsoft/sqlserver/jdbc/ActivityCorrelator$1; 
[2013-09-06 18:24:23 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/microsoft/sqlserver/jdbc/ActivityCorrelator$1; 
[2013-09-06 18:24:23 - SQLServerCall] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/microsoft/sqlserver/jdbc/ActivityCorrelator$1; 
+0

Проверяется ли она на вкладке «Заказ» и «Экспорт»? Не уверен, что возможно, там тоже будет. Кроме того, возможно, просто очистите проект. –

+0

Попробуйте Project -> Очистите один раз. Eclipse иногда ведет себя wierd – Jatin

+0

нет проекта очистки также не помогает –

ответ

1

Убедитесь, что библиотеки находятся в «Частных библиотеках Android» и добавьте «Частные библиотеки Android» на вкладке Order and Export.

Должно быть достаточно библиотек внутри каталога libs, вам не нужно добавлять их в путь сборки, поскольку все файлы в каталоге libs автоматически добавляются в путь сборки (через «частные библиотеки Android») ,

Я также считаю, что вы пытаетесь создать экземпляр неверный класс, попробуйте с именем класса com.microsoft.sqlserver.jdbc.SQLServerDriver (я заметил в скриншоте, что настоящее имя пакета является com.microsoft.sqlserver.jdbc и неcom.microsoft.jdbc.sqlserver)

Изменить: (Обновленный ответ после ваших обновлений)

Я предполагаю, что sqljdbc.jar и sqljdbc4.jar включают те же классы, если это так, вы можете включить только один из них в свой проект.

+0

, и это дает мне такую ​​же ошибку. –

+0

@ ShrimantBajiraoPeshawe-я вижу обновленный ответ, я считаю, что вы пытаетесь с неправильным именем класса. Сквозь ваш снимок экрана я вижу настоящее имя пакета - 'com.microsoft.sqlserver.jdbc', но вы переключили' sqlserver' и 'jdbc' в свой код. –

+0

Да, это правда, что это было неправильно написано, я изменил его, как и указал, но, к сожалению, та же ошибка снова –

1

Из того, что я могу видеть из скриншота, вы должны заменить:

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver") 

с:

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver") 
+0

Я изменил его, как и указал, но, к сожалению, такая же ошибка снова –

1

Ошибка имеет «Multiple Dex Файл» так должно быть у вас есть добавить Та же банка несколько раз в соответствии с вашим скриншотом см. Buildpath Snap: есть два sqljdbc.ja ** r. держите только один (держите последний, удалите другие), затем перейдите к ** ЗАКАЗ & ЭКСПОРТ: и выберите в основном все флажки. как Android поддержки версии 4 также.Это решит вашу проблему.

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