当前位置: 首页 > 知识库问答 >
问题:

SQLITE错误无法打开文件

吴兴国
2023-03-14

我想在数据目录中为应用程序创建一个数据库。我试着使用

try{
        String path = "/data/data/"+context+"/database/Einkaufsliste.sqlite";
        database = SQLiteDatabase.openOrCreateDatabase(path,null);
    }

但我总是遇到以下异常:无法打开数据库文件

Logcat得出以下结果:

04-10 19:55:09.387: E/SqliteDatabase aseCpp(554):sqlite3_open_v2("/data/data/at.einkaufsliste/database/Einkaufsliste.sqlite",

我设置了权限外部存储和组许可。

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

这种用法有什么不对?

共有1个答案

殷功
2023-03-14

这种用法有什么不对?

从不硬编码路径<对于许多用户来说,code>/data/data是错误的。使用getDatabasePath()获取数据库文件在内部存储中的位置。这也将解决使用字符串连接来构建路径的问题。

这会给你:

try {
    database = SQLiteDatabase.openOrCreateDatabase(getDatabasePath("Einkaufsliste.sqlite"), null);
}

假设此代码是从Context的子类中的方法调用的。否则,您将需要安排在Context上调用getDatabase asePath()

我设置了外部存储权限

如果您的意思是您有WRITE_EXTERNAL_STORAGE,这在这里并不重要,因为您没有将数据库放在外部存储上

和团体许可

对不起,我不知道那是什么意思。

此外,请考虑使用SQLiteOpenHelper,以便能够处理数据库模式随时间的变化。

 类似资料:
  • 我用的是Android平板,上面有Xamarin/C#应用。我试图用这款平板电脑访问驻留在我的Windows 10机器上的SQLite数据库。我选择使用USB/Android而不是Android模拟器,应用程序仍然驻留在Windows 10机器上。这似乎无关紧要,但我也尝试过映射驱动器、共享文件夹和创建网络连接。项目参考 这是代码: 命名空间CicoAndroid{公共部分类MainPage: C

  • 问题内容: 我正在尝试从命令行运行Websphere自由配置文件服务器。我正在按照这里告诉的步骤进行操作:https : //developer.ibm.com/wasdev/downloads/liberty-profile-using-non-eclipse- environments/ 我创建了名称为server1的服务器。 但是当提取完成后,我尝试使用以下命令启动服务器: 服务器抛出错误:

  • 问题内容: 不知道我做错了什么,我正在跟随一个有关如何使用Python和PyGame制作游戏的教程,但出现错误: 我的代码如下: 完整的错误消息是: 问题答案: 使用相对路径(这样做总是更好): 这样,无论您将包含文件的文件夹移动到何处,都可以访问其子目录(以及因此包含的所有子目录),而无需修改代码。 最终代码: 对所有其他文件使用此访问方法,将避免很多问题。

  • 我的具有: 有人知道吗? 更新:我再次尝试了一个教程在这里,并在一个异常页面中得到了相同的错误。 “处理请求时发生未处理的异常。SqliteException:SQLite错误14:”无法打开数据库文件“。Microsoft.Data.SQLite.SqliteException.ThrowExceptionForRC(int rc,sqlite3 db)”

  • 问题内容: 我收到这个奇怪的错误 我如何从中恢复?有任何想法吗 ? 谢谢 问题答案: 您丢失了与表1684和数据库17369相关的文件。在目录base / 17369中检查名称为1684的状态文件。 您可以确定它是哪个表: 1)获取数据库名称: 2)获取表名(连接到受影响的数据库): 可能没有更多可以做的事情了。仅从备份还原。

  • 问题内容: 我从Apache得到以下错误 [2011年3月19日23:10:50周六] [警告] mod_fcgid:stderr:PHP致命错误:require_once()[function.require]:无法打开所需的’/common/configs/config_templates.inc.php’(include_path =’ 。:/ usr / share / pear:/ us