Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:删除数据库路径的硬编码_Android_Database_Sqlite_Android Sqlite - Fatal编程技术网

Android:删除数据库路径的硬编码

Android:删除数据库路径的硬编码,android,database,sqlite,android-sqlite,Android,Database,Sqlite,Android Sqlite,在我的SQLite数据库助手类应用程序中,构造函数的代码如下: public DataBaseHelper(Context context) { super(context, DATABASE_NAME, null ,DATABASE_VERSION); this.myContext = context; //The Android's default system path of your application database. DB_PATH =

在我的SQLite数据库助手类应用程序中,构造函数的代码如下:

public DataBaseHelper(Context context) {    
    super(context, DATABASE_NAME, null ,DATABASE_VERSION);
    this.myContext = context;
    //The Android's default system path of your application database.
    DB_PATH =  "/data/data/myPackage/databases/";
}
我得到的警告如下:

不要硬编码“/data/”;改为使用Context.getFilesDir().getPath()

所以我试着:

DB_PATH = "/data/data/" + context.getPackageName() + "/databases/"; 

但我也得到了同样的警告。我现在该怎么办。

你可以做一件事。就像不要硬核一样。尝试以下方式:

DB_PATH =  myContext.getDatabasePath(DATABASE_NAME).getPath();

这将删除您的警告。

另一种使用方法是

File datbasefile=myContext.getDatabasePath("your database name");
String name = datbasefile.getPath() ;

您真的不需要提供数据库的路径。
让Android决定它想把它放在哪里。
您只需提供数据库名称:

private final static String DB_NAME = "your_db_name.db";
试试这个:

private final static String DATABASE_NAME = "/databases/";

DB_PATH = context.getFilesDir().getPath() + context.getPackageName() + DATABASE_NAME;