0

我一直使用相同的代码从资产文件夹中的文件创建数据库现在我尝试在 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 编辑器向我显示一个警告,不要硬编码 /data/ 路径,所以我认为有更好的方法来编写 PATH 以避免这些问题

在 String 中使用什么正确的语法来DB_PATH避免不同设备可能出现的问题?

4

2 回答 2

1

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

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

public File getDatabasePath (String name)

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

你可以在这个链接上阅读它。

于 2013-08-22T18:58:15.953 回答
0

尝试这个

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

它应该可以解决您的问题。

于 2013-08-22T18:52:00.847 回答