私はアンドロイドアプリでデータベースを作成してから、ステートメントを挿入しました。すべてうまくいったので、私は自分のデータベースをMY_PACKAGE/databses /に入れて、それをsdカードにコピーして到達可能にしたかったのです。sqliteを開くときに例外が発生する
これは働いたが、私は私のsqliteのFirefoxのプラグインで開こうとすると、私はこのエラーを取得:
SQLiteManager: Error in opening file Datas.sqlite - either the file is encrypted or corrupt
Exception Name: NS_ERROR_FILE_CORRUPTED
Exception Message: Component returned failure code: 0x8052000b (NS_ERROR_FILE_CORRUPTED) [mozIStorageService.openUnsharedDatabase]
は、たぶん私は何か他のもので開くために持っているか、私はそう簡単にこれを開くことができませんか?
私は私が使用するすべてのコードを提供します:SDカードにこの方法を、それをコピー
Using your own SQLite database in Android applications
:
public static boolean backUpDataBase(Context context) {
final String DATABASE_NAME = "Data.sqlite";
final String DATABASE_NAME_FULL = "/data/data/package/databases/"
+ DATABASE_NAME;
boolean result = true;
// Source path in the application database folder
String appDbPath = DATABASE_NAME_FULL;
// Destination Path to the sdcard app folder
String sdFolder = Environment.getExternalStorageDirectory()
.getAbsolutePath() + "/" + "Datas.sqlite";
File f = new File(sdFolder);
// if (!f.exists()) {
// f.mkdir();
// }
InputStream myInput = null;
OutputStream myOutput = null;
try {
// Open your local db as the input stream
myInput = new FileInputStream(appDbPath);
// Open the empty db as the output stream
myOutput = new FileOutputStream(f);
// transfer bytes from the inputfile to the outputfile
byte[] buffer = new byte[1024];
int length;
while ((length = myInput.read(buffer)) > 0) {
myOutput.write(buffer, 0, length);
}
} catch (IOException e) {
result = false;
e.printStackTrace();
} finally {
try {
// Close the streams
if (myOutput != null) {
myOutput.flush();
myOutput.close();
}
if (myInput != null) {
myInput.close();
}
} catch (IOException e) {
}
}
return result;
}
私はこのすべてのコードを使用し
は私のデシベルの取り扱いデータベースは次のようになります: 2テーブル:
私が必要とするすべて行うにはCREATE TABLE "Test" ("_id" INTEGER PRIMARY KEY NOT NULL UNIQUE , "Info" TEXT)
CREATE TABLE "android_metadata" ("locale" TEXT DEFAULT 'en_US')
とコード:読み取りと DataBaseHelperデータベース= Main.createOrOpenDB(mContext)を書き込むれる
//戻りdatabseを。
どこが間違っていますか?