在JellyBean Emulator中打开DataBase时应用程序崩溃,因为找不到DBPath

时间:2013-08-22 18:46:08

标签: android android-sqlite

我一直使用相同的代码从assets文件夹中的文件创建数据库 现在我试图在JellyBean 4.3模拟器中运行相同的代码,并在此点

public DataBaseHelper(Context context, String nomeDB) {
            super(context, nameDB, null, version);
            DB_NAME = nameDB;
            DB_PATH = "/data/data/" + context.getPackageName() + "/databases/";
            this.mContext = context;
        }

        public void createDataBase() throws IOException {
        ....
        }

应用程序在此行崩溃

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

使用IOException

此外,Eclipse编辑器向我显示了对硬编码/数据/路径的警告,因此我假设有一种更好的方法来编写PATH以避免这些问题

DB_PATH字符串中使用什么是正确的语法,以避免不同设备可能出现的问题?

2 个答案:

答案 0 :(得分:1)

在您的情况下,IOException可能意味着它没有在引用路径中找到数据库文件。 我总是使用Android内置的API方法,而不是构建路径。

以下方法在Context中可用,为您提供数据库路径。

public File getDatabasePath (String name)
  

返回数据库创建的文件系统的绝对路径   with openOrCreateDatabase(String,int,SQLiteDatabase.CursorFactory)   存储。

您可以在此link上阅读。

答案 1 :(得分:0)

试试这个

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

它可以解决您的问题。