現在のプロジェクトで少し問題が発生しました。いくつかのステートメントを処理するために SQLite データベースに接続する必要がある Android アプリケーションを実行しています。ステートメントなどは問題ないと思いますが、唯一の問題は、データベースへの接続がうまくいかないことです。
LogCat エラー:
04-18 08:20:30.688: E/Database(304): sqlite3_open_v2("jdbc:sqlite:res/raw/randomdb.db", &handle, 1, NULL) failed
したがって、データベースに接続するためのこれまでのコードは次のようになります。
String url = "jdbc:sqlite:res/raw/randomdb.db";
SQLiteDatabase db;
db = SQLiteDatabase.openDatabase(url, null, SQLiteDatabase.OPEN_READONLY);
ご覧のとおり、project/res/raw フォルダーにあるデータベースにアクセスしようとしています。誰かが間違いを見ますか?
!!!アップデート!!! *私は SQLiteOpenHelper で道を進めようとしましたが、解決できないように見えるエラーが発生します。これが私の新しいコードです: *
public class DatabaseAdapter extends SQLiteOpenHelper {
private static String dbPath= "data/data/com.YourPackageName/applicationDb/";
private static String dbName = "YourDBName";
private SQLiteDatabase applicationDatabase;
private final Context applicationContext;
private boolean checkDataBase(){
File dbFile = new File( dbPath + dbName);
return dbFile.exists();
}
public void openDataBase() throws SQLException{
String fullDbPath= dbPath + dbName;
applicationDatabase = SQLiteDatabase.openDatabase( fullDbPath,null,SQLiteDatabase.OPEN_READONLY);
}
@Override
public void onCreate(SQLiteDatabase db) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
次のエラーが表示されます: Implicit super constructor SQLiteOpenHelper() is undefined for default constructor. 明示的なコンストラクターを定義する必要があり ます 素晴らしいことだ!