数据库中的文件路径无效

时间:2013-06-18 03:38:25

标签: android sqlite filepath

我有一个应用程序,它将一些数据保存在本地sqlite数据库文件中。在我的一台设备上,不时尝试读取此数据会导致“文件路径无效”对话框。

我在SQLiteHelper中用来设置数据库文件路径的代码:

static String getEnvironmentPath() {
    if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
        return Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "custom.db";
    } else {
        return "custom.db";
    }
}

实际上,我甚至不确定因为数据库而显示这个无效的文件路径弹出窗口,我只是在我的一台设备上不时从数据库中读取一些数据时出现此错误。

最初认为我的情况类似于How to open pdf file in package path in android?,但是如何在同一个数据库文件中,75%的数据被正常读取,25%导致此错误并且仅在一个设备上?

可能出现什么问题?

谢谢!

2 个答案:

答案 0 :(得分:0)

我希望您已在Manifest文件中授予权限。

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

另外,我不确定getExternalStoragePublicDirectory(...)是否为您提供了正确的路径。 只需调试并检查您是否获得路径

  /data/data/com.example.program/databases/xxx.db  or not !

答案 1 :(得分:0)

令人难以置信,但事实上 - 从设备上删除Adobe Reader解决了这个问题!我在我的应用程序中保留新闻,其中一些包含html中的flash视频,因此Adobe Player尝试打开这些并导致此“无效路径”错误。