【发布时间】:2011-07-17 17:29:01
【问题描述】:
我在构建具有预填充数据库的 android 应用程序时遇到了真正的麻烦。
请查看整个source code。
我使用 sqlitebrowser 创建了一个数据库,并将其复制到我的 Android 应用程序中的“assets”目录中。
我在Java类DBAdapter.java中添加了从assets目录复制数据库的代码
在MainActivity.java 中我调用了createDatabase 函数,所以如果数据库不存在,它应该从资产目录复制数据库。创建数据库后,我调用getAllContacts 函数并将其显示在页面上。
每当我执行项目时,它都会抛出一个我无法调试的错误。
谁能帮我解决这个问题?
更新:
Logcat 显示以下异常。 assets/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)
【问题讨论】:
-
logcat 对此怎么说...?
-
在哪里可以看到日志?抱歉,我是 Android 新手
-
你必须手动在控制台上看到它http://developer.android.com/guide/developing/tools/logcat.html 如果你使用ADT它带有一个Logcat视图来查看你的日志
-
谢谢.. 这是日志跟踪 E/AndroidRuntime(672): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.me.mydb/org.me.mydb.MainActivity }:android.database.sqlite.SQLiteException:没有这样的表:联系人:,编译时:SELECT _id,姓名,电子邮件来自联系人E/AndroidRuntime(672):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) E/AndroidRuntime(672): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
-
天哪!您是否使用 Google Docs 作为代码的某种版本控制系统?请考虑github...