android:手动将sqlite数据库复制到设备

时间:2014-09-03 14:25:07

标签: android database sqlite

我已经开发了一个Android应用程序,它将在一个设备上运行,我有一个SQLite数据库,我想将其复制到设备内部存储器上的// data / data //数据库目录中,但我有两个问题:

  1. 我的应用程序的此目录对我来说不可见,而其他一些应用程序的文件可见。
  2. 我手动创建了这个目录并在那里复制了数据库,但它没有用。
  3. 在模拟器中,我将db复制到自动创建的文件,并且app正常工作。 谢谢你的帮助

    这是我的sqlite代码:

     SQLiteDatabase db=openOrCreateDatabase("a",MODE_PRIVATE, null);
        Cursor c=db.rawQuery("SELECT * FROM person WHERE id=?", new String [] {String.valueOf(1)});
        c.moveToFirst();
        String name=c.getString(c.getColumnIndex("name"));      
        db.close();
        TextView tv=(TextView) findViewById(R.id.textView1);
        tv.setText(name);
    

1 个答案:

答案 0 :(得分:0)

您必须将SQLite数据库复制到主项目文件夹中的assets文件夹中。您不能将其直接放在/data/data/your application package/

按照tutorial进行操作。

代码中有一行

private static String DB_PATH = "/data/data/YOUR_PACKAGE/databases/";

替换它

private static String DB_PATH;

将构造函数更新为

public DataBaseHelper(Context context) {

    super(context, DB_NAME, null, 1);
    this.myContext = context;
    // you will get a warning if you'll try to hardcode your path
    DB_PATH = myContext.getDatabasePath(DB_NAME).getPath();
}

休息在本教程中进行了解释。