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

使用“SQLite数据库浏览器”创建或编辑数据库后,android无法打开数据库

胥博文
2023-03-14

我想为我的android应用程序预创建数据库。我使用“SQLite数据库浏览器”,创建数据库后,我已经将数据库复制到应用程序文件夹“数据库”中。在我的应用程序端,我有添加权限写入sdcard(如果需要的话)

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

我打开数据库的代码是:

    String myPath = getApplicationContext().getFilesDir().getAbsolutePath().replace("files","databases")+ File.separator + "mydb.db";
    db = SQLiteDatabase.openOrCreateDatabase(myPath, null);
    android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
CREATE TABLE "android_metadata" ("locale" TEXT DEFAULT 'en_US');
INSERT INTO "android_metadata" VALUES ('en_US')

*“SQLite数据库浏览器”的版本为3.9.1

共有1个答案

高恺
2023-03-14

请确保您的文件路径为空或不为空。首先检查一下,然后打开它

String myPath = getApplicationContext().getFilesDir().getAbsolutePath().replace("files","databases")+ File.separator + "mydb.db";
File file = new File(myPath);    
if (file.exists() && !file.isDirectory())
{
      db = SQLiteDatabase.openOrCreateDatabase(myPath, null);
}
else
{
      Log.i(TAG, "Database file not found");
}
 类似资料:
  • 我想预先为我的android应用程序创建数据库。我使用“SQLite数据库浏览器”,在创建我的数据库后,我已经将数据库复制到应用程序文件夹“数据库”。在我的应用程序方面,我有添加权限写在sdcard(如果需要) 打开数据库的代码是: 对不起我的英语... *“SQLite数据库浏览器”的版本是3.9.1

  • 主要内容:语法,实例,.dump 命令SQLite 的 sqlite3 命令被用来创建新的 SQLite 数据库。您不需要任何特殊的权限即可创建一个数据。 语法 sqlite3 命令的基本语法如下: 通常情况下,数据库名称在 RDBMS 内应该是唯一的。 另外我们也可以使用 .open 来建立新的数据库文件: 上面的命令创建了数据库文件 test.db,位于 sqlite3 命令同一目录下。 打开已存在数据库也是用 .open 命令,

  • 我需要帮助创建一个android应用程序,因为我对android完全陌生。我想开发一个应用程序,能够使用该应用程序在我的android手机上执行与数据库相关的操作。它应该允许用户查看我的设备中有多少数据库。 当我选择数据库,表应该显示在我的设备上,并允许用户执行插入,删除,更新操作。也允许用户创建新的database.anybody有帮助我吗?谢谢。

  • 我是< code>sqlite数据库的新手,在我的项目中,我需要在创建数据库后添加数据。我尝试了这种方式,这是我的代码。 公共类主要活动扩展活动 { } 我创建了另一个类来打开sqlite数据库。 公共类MySqlHelper扩展SQLiteOpenHelper{ 公共字符串getBird(int id){ 它给我异常 帮助我避免这种情况,并在创建数据库后立即插入数据。

  • 我是在Android应用程序中使用SQL的新手,并且我在更新使用listView创建的表时遇到了一些麻烦。我设法从listView中更新了一个元素,但它不是正确的元素,它总是列表中的第一个元素发生了变化。 我制作了一个只有一列的表(稍后我将添加更多的两列),下面是我如何构建它: TaskContract_Faltas.java TaskDbHelper_Faltas Faltas.java 我使用

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