Sqlite 复制数据库文件时出错
DBhelper.javaSqlite 复制数据库文件时出错,sqlite,root,cp,busybox,Sqlite,Root,Cp,Busybox,DBhelper.java String gaanaDB = "/data/data/com.xyz/databases/DB"; String converterDB = "/data/data/com.abc/databases/DB"; Runtime.getRuntime().exec("su"); Runtime.getRuntime().exec("busybox cp -f " + gaanaDB + " " + converterDB); 当我尝试访问数据库时,它没有抛出这样的
String gaanaDB = "/data/data/com.xyz/databases/DB";
String converterDB = "/data/data/com.abc/databases/DB";
Runtime.getRuntime().exec("su");
Runtime.getRuntime().exec("busybox cp -f " + gaanaDB + " " + converterDB);
当我尝试访问数据库时,它没有抛出这样的表
我在Shell Commander应用程序中尝试过这个命令,它工作得非常好。
但是当我尝试在我的应用程序中使用它时,它不会复制数据库中的表
已安装根Kitkat和BusyBox。首先尝试创建表:
package com.aks.gaanaconverter.util;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DBHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "GaanaDB";
private static final String TABLE_NAME = "table_track_metadata";
private static final String ID = "track_id";
private static final String NAME = "track_name";
private static final String HAS_DOWNLOADED = "has_downloaded";
private static final int HAS_DOWNLOADED_VALUE = 1;
public DBHelper(Context context) {
super(context, DATABASE_NAME, null, 6);
// TODO Auto-generated constructor stub
}
@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 Cursor getData() {
SQLiteDatabase db = this.getReadableDatabase();
Cursor res = db.rawQuery("select " + ID + "," + NAME + " from "
+ TABLE_NAME/*
* +" where "+HAS_DOWNLOADED+"="+HAS_DOWNLOADED_VALUE
*/, null);
return res;
}
}
您可以发布输出或收到的错误吗?这是错误:android.database.sqlite.SQLiteException:没有这样的表:table\u track\u元数据代码1:,编译时:选择track\u id,track\u name from table\u track\u metadatabase但我正在从其他文件夹复制该数据库,然后我也需要创建它?它正在创建空表。。。但是我没有我的数据,我正试图使用超级用户复制原始数据库中的哪种类型的文件?它是sqlite db n类型,即扩展名是文件,请参阅此答案完全适用于您的情况:祝您好运
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE if not exists table_track_metadata(track_id INTEGER PRIMARY KEY AUTOINCREMENT,"
+ "track_name"
+ " TEXT,"...)");
}