可能性の重複:
How to access an existing sqlite database in Android?使用既存のデータベース - Androidの開発
私は長い時間のために検索してきたが、私は答えを見つけることができません。私は、既存のSqliteデータベースtest.dbをアプリケーション内のデータと共にコピーしたいと思います。だからユーザーがアプリケーションからアプリケーションをダウンロードすると、dbも一緒に納品されます。
今、私はチュートリアルthisとthisへの参照をたくさん見ました。しかし、それらのどれも私のために働くことはありません。
public class DatabaseAdapter extends SQLiteOpenHelper {
private static String dbPath= "data/data/test.test.test/databases/";
private static String dbName = "test";
private SQLiteDatabase applicationDatabase;
private final Context applicationContext;
public DatabaseAdapter(Context context) {
super(context, dbName , null, 3);
this. applicationContext = context;
}
public boolean checkDataBase(){
File dbFile = new File(dbPath + dbName);
return dbFile.exists();
}
public void copyDataBase() throws IOException{
try {
InputStream input = applicationContext .getAssets().open(dbName);
String outPutFileName= dbPath + dbName ;
OutputStream output = new FileOutputStream(outPutFileName);
byte[] buffer = new byte[1024];
int length;
while ((length = input.read(buffer))>0){
output.write(buffer, 0, length);
}
output.flush();
output.close();
input.close();
}
catch (IOException e) {
Log.v("error",e.toString());
}
}
public void openDataBase() throws SQLException{
String fullDbPath= dbPath + dbName;
applicationDatabase = SQLiteDatabase.openDatabase(fullDbPath, null,SQLiteDatabase.OPEN_READONLY);
}
@Override
public synchronized void close() {
if(applicationDatabase != null)
applicationDatabase .close();
super.close();
}
@Override
public void onCreate(SQLiteDatabase arg0) {
// TODO Auto-generated method stub
}
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
// TODO Auto-generated method stub
}
public void getit(){
this.getReadableDatabase().rawQuery("SELECT * FROM test", null);
}
}
エラーコード= 1が表示されます。 データベースが作成されていることを確認すると、テーブルandroid_metadataのみが作成されます。
実例はありますか?
今、私が手:SQLiteが返されました:エラーコード= 14、MSG =ソースライン25467. Sqlite3_open_v2( "データ/データ/ test.test.test /データベース/ oww_db"、&扱う、1、NULL)でファイルを開けませんが失敗することができます。 test.dbデータベースには1つの列がありました。 dbはコピーされましたが、上記のエラーが発生しました。そして、oww_db.dbには多くのテーブルがあり、データベースはコピーされましたが、 "android_metadata"テーブルのみがコピーされていました。そして私はまた、上記のエラーを取得します。 –
私が使っているコードを分けて、あなたの情報と共にそれを投稿します。私はそれが私のために働くことを知っているので、あなたはそれを試して、あなたのために動作するかどうかを確認することができます –
ありがとう!感謝します! –