android - 预填充数据库 - Android 应用程序

标签 android database sqlite

我在构建一个具有预填充数据库的 Android 应用程序时遇到了真正的麻烦。

请查看整个source code .

我使用 sqlitebrowser 创建了一个数据库,并将其复制到我的 Android 应用程序中的“assets”目录中。

我在Java类DBAdapter.java中添加了从 Assets 目录复制数据库的代码

MainActivity.java中,我调用了createDatabase函数,因此如果数据库不存在,它应该从 Assets 目录复制数据库。创建数据库后,我调用 getAllContacts 函数并将其显示在页面上。

每当我执行该项目时,它都会抛出一个我无法调试的错误。

有人可以帮我解决这个问题吗?

更新:

Logcat 显示以下异常。似乎 asset/MyDB.db 中的“联系人”表没有被复制/创建,但我不确定为什么。

E/AndroidRuntime(  672): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.me.mydb/org.me.mydb.MainActivity}: android.database.sqlite.SQLiteException: no such table: contacts: , while compiling: SELECT _id, name, email FROM contacts
E/AndroidRuntime(  672):        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
E/AndroidRuntime(  672):        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
E/AndroidRuntime(  672):        at android.app.ActivityThread.access$2300(ActivityThread.java:125)
E/AndroidRuntime(  672):        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
E/AndroidRuntime(  672):        at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(  672):        at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime(  672):        at android.app.ActivityThread.main(ActivityThread.java:4627)

最佳答案

这是一个很好的link开始吧。

本质上,这个想法是使用SQLiteOpenHelper类,当不存在数据库时,您将预先播种的数据库逐字节复制到正确的位置。我在我的一个项目中稍微修改了它,但它看起来工作得很好

关于android - 预填充数据库 - Android 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6725515/

相关文章:

django - 名称错误 : name 'django_filters' is not defined

asp.net - 将图片存储为文件或存储在数据库中,例如用于 Web 应用程序的 MSSQL?

Android 日期查询无法正常工作

android - SQLite .query() 方法,WHERE 子句只采用双引号字符串

android - 来自非 Activity 类的 Intent

android - Chromium WebView : "CheckMediaAccessPermission: Not supported" 内的 WebRTC 错误

android - PhoneGap Eclipse 问题 - eglCodecCommon glUtilsParamSize : unknow param errors

sql - Oracle 插入中缺少逗号

java - 房间库中实体的非列字段如何填写

android - 类的父类(super class)型无法解析