运行时错误 - 不要硬编码" / data /&#34 ;;请改用Context.getFilesDir()。getPath()

时间:2014-05-07 11:34:25

标签: android sqlite

在我的应用程序中,我正在创建一个可以检索值的数据库(如果存储)。但在运行应用程序时显示错误android.database.sqlite.SQLiteCantOpenDatabaseException: Could not open database

这是代码:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity);

    // Creating Database 

    SQLiteDatabase dtbase = openOrCreateDatabase("/data/data/com.example.students/databases/ListDB", SQLiteDatabase.CREATE_IF_NECESSARY, null );
    dtbase.setVersion(1);
    dtbase.setLockingEnabled(true);
    dtbase.close();
}

1 个答案:

答案 0 :(得分:3)

您可以在不提供相对路径的情况下访问数据库。

只需使用数据库名称ListDB,而不是使用"/data/data/com.example.students/databases/ListDB"

openOrCreateDatabase("ListDB", SQLiteDatabase.CREATE_IF_NECESSARY, null );

它将数据库ListDB指向/data/data/com.example.students/databases/


是的,正如laalto所说,您应该考虑扩展SQLiteOpenHelper来管理您的数据库。您当前的方法不是一个好方法。例如,请阅读Android SQLite Database Tutorial