2016-02-23 23 views
0

我试图使用AsyncTask中的jtds连接到mssql服务器数据库。在行,Android:Async dobackground()在连接数据库时无法正常工作

con = DriverManager.getConnection(connString); 
当谈到这条线,经过3或4秒AsyncTask.java文件上执行功能和应用程序崩溃后

这里就是我特林在歌厅连接线走那么远

protected Void doInBackground(Void... params) 
    { 
     Connection con = null; 
     try { 
      String driver = "net.sourceforge.jtds.jdbc.Driver"; 
      Class.forName(driver).newInstance(); 
      String connString = "jdbc:jtds:sqlserver://dbandroid.mssql.somee.com:1433/dbandroid;"; 
      con = DriverManager.getConnection(connString,"username","password"); 
      Log.i("SQLConn", "IsClosed:" + con.isClosed()); 
     } 
     catch(Exception ex) 
     { 
      Log.e("SQLServerConn",ex.getMessage()); 
     } 
     return null; 
    } 

后3〜4秒说到这里AsyncTask.java

public synchronized void execute(final Runnable r) { 
     mTasks.offer(new Runnable() { 
      public void run() { 
       try {.... 

和SQL连接没有问题堂妹我用相同的用户名和密码将它与SSMS连接起来

错误日志

02-23 05:18:03.704 15690-15737/com.example.hamza.sunshine E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1 
02-23 05:18:03.704 15690-15737/com.example.hamza.sunshine E/AndroidRuntime: Process: com.example.hamza.sunshine, PID: 15690 
02-23 05:18:03.704 15690-15737/com.example.hamza.sunshine E/AndroidRuntime: java.lang.RuntimeException: An error occured while executing doInBackground() 
02-23 05:18:03.704 15690-15737/com.example.hamza.sunshine E/AndroidRuntime:  at android.os.AsyncTask$3.done(AsyncTask.java:300) 
02-23 05:18:03.704 15690-15737/com.example.hamza.sunshine E/AndroidRuntime:  at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355) 
02-23 05:18:03.704 15690-15737/com.example.hamza.sunshine E/AndroidRuntime:  at java.util.concurrent.FutureTask.setException(FutureTask.java:222) 
02-23 05:18:03.704 15690-15737/com.example.hamza.sunshine E/AndroidRuntime:  at java.util.concurrent.FutureTask.run(FutureTask.java:242) 
02-23 05:18:03.704 15690-15737/com.example.hamza.sunshine E/AndroidRuntime:  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
02-23 05:18:03.704 15690-15737/com.example.hamza.sunshine E/AndroidRuntime:  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
02-23 05:18:03.704 15690-15737/com.example.hamza.sunshine E/AndroidRuntime:  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
02-23 05:18:03.704 15690-15737/com.example.hamza.sunshine E/AndroidRuntime:  at java.lang.Thread.run(Thread.java:841) 
02-23 05:18:03.704 15690-15737/com.example.hamza.sunshine E/AndroidRuntime: Caused by: java.lang.VerifyError: net/sourceforge/jtds/jdbc/TdsCore 
02-23 05:18:03.704 15690-15737/com.example.hamza.sunshine E/AndroidRuntime:  at net.sourceforge.jtds.jdbc.JtdsConnection.<init>(JtdsConnection.java:359) 
02-23 05:18:03.704 15690-15737/com.example.hamza.sunshine E/AndroidRuntime:  at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:184) 
02-23 05:18:03.704 15690-15737/com.example.hamza.sunshine E/AndroidRuntime:  at java.sql.DriverManager.getConnection(DriverManager.java:179) 
02-23 05:18:03.704 15690-15737/com.example.hamza.sunshine E/AndroidRuntime:  at java.sql.DriverManager.getConnection(DriverManager.java:213) 
02-23 05:18:03.704 15690-15737/com.example.hamza.sunshine E/AndroidRuntime:  at com.example.hamza.sunshine.MainActivity$SQLServerConn.doInBackground(MainActivity.java:270) 
02-23 05:18:03.704 15690-15737/com.example.hamza.sunshine E/AndroidRuntime:  at com.example.hamza.sunshine.MainActivity$SQLServerConn.doInBackground(MainActivity.java:258) 
02-23 05:18:03.704 15690-15737/com.example.hamza.sunshine E/AndroidRuntime:  at android.os.AsyncTask$2.call(AsyncTask.java:288) 
02-23 05:18:03.704 15690-15737/com.example.hamza.sunshine E/AndroidRuntime:  at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
02-23 05:18:03.704 15690-15737/com.example.hamza.sunshine E/AndroidRuntime:  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)  
02-23 05:18:03.704 15690-15737/com.example.hamza.sunshine E/AndroidRuntime:  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)  
02-23 05:18:03.704 15690-15737/com.example.hamza.sunshine E/AndroidRuntime:  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)  
02-23 05:18:03.704 15690-15737/com.example.hamza.sunshine E/AndroidRuntime:  at java.lang.Thread.run(Thread.java:841)  
+0

请把你的崩溃报告粘贴在这里,以帮助你更好。 –

+0

我不知道在哪里得到崩溃报告,我是新的 –

+1

它将在'LogCat'选项卡中可用。当你的应用程序崩溃的时候,你会在logcat中看到错误日志。在这里复制粘贴一个。 –

回答

0

下面是答案。当我收到那个f * ckin错误时,我正在使用jtds-1.3.1。只需将jtds降级到1.3.0和BINGO即可。它将运行良好并成功连接到数据库。我猜它是最新版本中的一个错误。

相关问题