尝试使用UCanAccess时,Android应用程序崩溃

时间:2015-08-20 21:35:29

标签: java android processing

我正在尝试使用Processing编写Android应用,并且应用需要与存储在设备上的Access数据库进行通信。为此,我尝试使用UCanAccess,因为Java 8显然已经放弃了对此类内容的原生支持。无论出于何种原因,自从添加此代码后,运行我的应用程序会导致其崩溃并显示消息“不幸的是,我的第一个Android应用程序已停止。”

为什么会这样?以下是与问题相关的代码部分:

import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;

import net.ucanaccess.converters.TypesMap.AccessType;
import net.ucanaccess.ext.FunctionType;
import net.ucanaccess.jdbc.UcanaccessConnection;
import net.ucanaccess.jdbc.UcanaccessDriver;

static class databasesHandler
{
  static boolean readFromDatabase(int uid)
  {
    try {
      Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
      Connection con = DriverManager.getConnection("jdbc:ucanaccess:///sdcard/Android/data/accessDatabase.mdb");
      Statement stmt = con.createStatement();
      stmt.execute("SELECT saveVal FROM userVals WHERE userId = " + str(uid));

      ResultSet rs = stmt.getResultSet();
      boolean spotFilled = false;

      if (rs != null)
      {
        while (rs.next())
        {
          spotFilled = boolean(rs.getInt("gameSaved"));
        }
      }

      stmt.close();
      con.close();
      return spotFilled;
    }
    catch(Exception e) {
      e.printStackTrace();
    }
    return false;
  }
}

我已将UCanAccess库及其lib文件夹放在我的Processing sketch的code文件夹中,在我进行此更改之前,该应用程序运行良好。

0 个答案:

没有答案