表没有被创建

时间:2012-01-07 11:26:35

标签: android

我已经为表格创建了但是当我试图从我的一个屏幕访问该表时抛出异常。

即使我在commannd提示中做了shell,也无法找到那张桌子。我需要做的任何线索。

日志:

W/System.err(  275):    at java.lang.Thread.run(Thread.java:1096)
I/Database(  275): sqlite returned: error code = 1, msg = no such table: woman_registration
D/AndroidRuntime(  275): Shutting down VM
W/dalvikvm(  275): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
E/AndroidRuntime(  275): FATAL EXCEPTION: main
E/AndroidRuntime(  275): android.database.sqlite.SQLiteException: no such table: woman_registration: , while compiling: SELECT DISTINCT
 * FROM woman_registration WHERE  (m_name = ? AND  f_name = ? and m_age_range = ?)
E/AndroidRuntime(  275):        at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
E/AndroidRuntime(  275):        at android.database.sqlite.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:91)
E/AndroidRuntime(  275):        at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:64)
E/AndroidRuntime(  275):        at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:80)
E/AndroidRuntime(  275):        at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:46)
E/AndroidRuntime(  275):        at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:42)
E/AndroidRuntime(  275):        at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
E/AndroidRuntime(  275):        at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1229)
E/AndroidRuntime(  275):        at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1184)
E/AndroidRuntime(  275):        at org.atl.db.DBAdapter.isWomanAlreadyRegisgtered(DBAdapter.java:376)
E/AndroidRuntime(  275):        at com.accenturelabs.idoc.RegisterWoman.registerMother(RegisterWoman.java:237)
E/AndroidRuntime(  275):        at com.accenturelabs.idoc.RegisterWoman.access$1(RegisterWoman.java:223)
E/AndroidRuntime(  275):        at com.accenturelabs.idoc.RegisterWoman$4.onClick(RegisterWoman.java:141)
E/AndroidRuntime(  275):        at android.view.View.performClick(View.java:2408)
E/AndroidRuntime(  275):        at android.view.View$PerformClick.run(View.java:8816)
E/AndroidRuntime(  275):        at android.os.Handler.handleCallback(Handler.java:587)
E/AndroidRuntime(  275):        at android.os.Handler.dispatchMessage(Handler.java:92)
E/AndroidRuntime(  275):        at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime(  275):        at android.app.ActivityThread.main(ActivityThread.java:4627)
E/AndroidRuntime(  275):        at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(  275):        at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime(  275):        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
E/AndroidRuntime(  275):        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
E/AndroidRuntime(  275):        at dalvik.system.NativeStart.main(Native Method)
D/dalvikvm(   58): GC_FOR_MALLOC freed 18388 objects / 947880 bytes in 106ms
W/ActivityManager(   58):   Force finishing activity com.accenturelabs.idoc/.RegisterWoman
I/ARMAssembler(   58): generated scanline__00000077:03515104_00000000_00000000 [ 33 ipp] (47 ins) at [0x34d7b0:0x34d86c] in 7148901 ns

3 个答案:

答案 0 :(得分:0)

尝试从您的ddms数据中删除 - &gt;数据 - &gt;你的包裹 - &gt;数据库 在这里你会发现该表是不创建的。 你把它拉出来并用SQllite浏览器打开你将获得所有的表格列表。

希望这会对你有所帮助

答案 1 :(得分:0)

如果您还没有扩展SQLiteOpenHelper数据库代码,那么

然后检查你的onUpgrade()方法是否也回调你的onCreate()方法。您可能正在丢弃所有表,然后不重新创建它们。确保每次更改表时都会碰撞数据库版本号。

谷歌iosched应​​用程序有一个完整的,如果不是稍微复杂的如何执行此操作的示例。

http://code.google.com/p/iosched/source/browse/android/src/com/google/android/apps/iosched/provider/ScheduleDatabase.java

答案 2 :(得分:0)

实际上我必须从模拟器中卸载应用程序。之后工作正常