2011-07-28 18 views
0

enter image description here 私はsqliteadmin(バージョン0.8.3.2)を使用してデータベースを作成し、このファイルをアセットディレクトリに置き、このファイルをdata/data/mypackage/databases/mydbにコピーします。このファイルを開くときにok.nowにします。 android.database.sqlite.SQLiteException: unable to open database fileとして例外が発生しました。コードの下にmydbを開くために使用しています。SQliteが開くことができません

private static final String DB_PATH = "/data/data/src.com/databases/"; 
private static final String DB_NAME = "mydb"; 
String mypath = DB_PATH + DB_NAME; 

try{ 
dbBF = SQLiteDatabase.openDatabase(mypath, null, SQLiteDatabase.OPEN_READWRITE); 

}catch(Exception ex) 

{System.out.print("H![enter image description here][1]ere is an Exception"+ex); 
}  
Cursor cur = dbBF.rawQuery("SELECT * FROM"+"myTable" , null); 
+0

私たちにコードを教えてください。どのようにデータベースを開きますか? –

+0

私は上記の投稿を編集してSQLiteを開くメソッドを追加します... – aftab

+0

ファイルには.db拡張子が必要ですか? –

答えて

0

あなたのアプローチは正しいようです。あなたのデータベースファイルを拡張していますか? mydb.dbのように。それ以上の場合は、ファイルの完全な名前を追加する必要があります。

+0

thansk、私のSQLiteファイルには拡張子がありません。アセットディレクトリからデータディレクトリにコピーすると、その時に拡張子は入れませんでした。 – aftab

+0

そのディレクトリにコピーされていますか?あなたのDDMSパースペクティブのファイルエクスプローラで確認してください –

+0

私のデバイスをプラグアウトし、DDMSビューでエミュレータを実行し、自分のコードを実行して、自分のデータベースファイルがdata/data/package/databases/mydbディレクトリに存在するのを確認します。 ... – aftab

0

私は同じ問題を抱えていました。まず、データベースファイルが1.2MBを超えてはならないことに注意してください。そうであれば分割してください。第二に、代わりに次の行で、

DBAdapter db = new DBAdapter(this); 
db.openDataBase(); //Bad! db not created yet! 

は、私はHow does android access a sqlite database included in the assets folderからそれをコピーし

DBAdapter db = new DBAdapter(this); 
db.createDataBase(); //needs exception handling 
db.openDataBase(); 

を使用するようにしてください。とにかく、それは私のために働く。問題が発生した場合は、私に知らせてください。

関連する問題