【问题标题】:Use sqlite database from Android app resources使用来自 Android 应用资源的 sqlite 数据库
【发布时间】:2009-12-12 23:05:20
【问题描述】:

我最近开始了 Android 编程,所以请耐心等待 :)

我开发了一个应用程序,它的所有内容都存储在 database.sql 文件中。 我已经实现了 SQLiteOpenHelper 的一个子类,并将 database.sql 添加到我的项目资产中。

public class DBHelper extends SQLiteOpenHelper
{
public DBHelper (Context ctx)
{
  super(ctx, "database.sql", null, 1);
}
}

这东西行不通。每次我尝试对 DB 做某事时,我都会遇到一个异常:(

【问题讨论】:

  • 抛出了什么异常?

标签: database android sqlite mobile resources


【解决方案1】:

当您想在Android本地创建数据库时,您有3个选择;希望他们很快会支持直接从 APK 进行部署。数据库需要位于特定位置:

/data/data/YOUR_PACKAGE/databases/

  1. 您可以从已知的网络位置下载数据库并将其写入数据库文件夹。
  2. 您可以使用代码创建数据库。
  3. 您可以将数据库从资产文件夹复制到数据库文件夹(需要双倍空间)。

另见http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/

【讨论】:

    【解决方案2】:

    你还需要重写 onCreate 和 onUpdate,看看谷歌的例子here

    【讨论】:

    • 我做到了。我只是没有在这里发布它,因为它们只是我的应用程序中的存根。
    • 你遇到了什么异常?
    • 我得到“表 mytable 不存在”
    • 这意味着您的 SQL 查询有问题。首先检查您为在 onCreate 方法中创建数据库而编写的查询。由于您使用 sqlite,请查看 .sqlite 文件以检查数据库的状态
    • 没有问题是在 onCreate 方法中创建了一个空数据库,而不是使用我的资产数据库
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多