0

android.I でデータベースをテストしようとしています。sumsung GALAXY TAB でプロジェクトを実行したいです。そこで、AVD を Galaxy Nexus 、RAM = 512、VM ヒープ = 64、SD カード = 1024 MiB に設定しました。Android プロジェクト名は SQLiteDatabase です。AVD で SQLiteDatabase を実行すると、このエラーが表示されます。

残念ながら、SQLite データベースは停止しています。

SQLiteDatabase プロジェクトを実行できない理由がわかりません。これは logcat からのエラーです。

01-09 04:17:27.347: I/Process(6519): Sending signal. PID: 6519 SIG:9
     01-09 04:17:33.517: W/Trace(6848): Unexpected value from nativeGetEnabledTags: 0
     01-09 04:17:33.517: W/Trace(6848): Unexpected value from nativeGetEnabledTags: 0
     01-09 04:17:33.562: W/Trace(6848): Unexpected value from nativeGetEnabledTags: 0
     01-09 04:17:33.562: W/Trace(6848): Unexpected value from nativeGetEnabledTags: 0
     01-09 04:17:34.917: D/dalvikvm(6848): GC_CONCURRENT freed 75K, 7% free 2744K/2948K, paused 12ms+6ms, total 122ms
     01-09 04:17:34.917: D/dalvikvm(6848): WAIT_FOR_CONCURRENT_GC blocked 71ms
     01-09 04:17:34.937: I/dalvikvm-heap(6848): Grow heap (frag case) to 3.868MB for 1127536-byte allocation
     01-09 04:17:35.027: D/dalvikvm(6848): GC_FOR_ALLOC freed 2K, 6% free 3843K/4052K, paused 84ms, total 85ms
     01-09 04:17:35.227: D/dalvikvm(6848): GC_CONCURRENT freed <1K, 6% free 3847K/4052K, paused 10ms+4ms, total 199ms
     01-09 04:17:35.347: E/SQLiteLog(6848): (1) near "tabletool": syntax error
     01-09 04:17:35.359: D/AndroidRuntime(6848): Shutting down VM
     01-09 04:17:35.359: W/dalvikvm(6848): threadid=1: thread exiting with uncaught exception (group=0x40a70930)
     01-09 04:17:35.417: E/AndroidRuntime(6848): FATAL EXCEPTION: main
     01-09 04:17:35.417: E/AndroidRuntime(6848): java.lang.RuntimeException: Unable to start activity
 ComponentInfo{com.example.sqlitedatabase/com.example.sqlitedatabase.MainActivity}:
 android.database.sqlite.SQLiteException: near "tabletool": syntax
 error (code 1): , while compiling: create tabletool(idinteger primary
 key autoincrement ,nametext ,amountnumericunitunit
     01-09 04:17:35.417: E/AndroidRuntime(6848):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
     01-09 04:17:35.417: E/AndroidRuntime(6848):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
     01-09 04:17:35.417: E/AndroidRuntime(6848):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
     01-09 04:17:35.417: E/AndroidRuntime(6848):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
     01-09 04:17:35.417: E/AndroidRuntime(6848):     at android.os.Handler.dispatchMessage(Handler.java:99)
     01-09 04:17:35.417: E/AndroidRuntime(6848):     at android.os.Looper.loop(Looper.java:137)
     01-09 04:17:35.417: E/AndroidRuntime(6848):     at android.app.ActivityThread.main(ActivityThread.java:5039)
     01-09 04:17:35.417: E/AndroidRuntime(6848):     at java.lang.reflect.Method.invokeNative(Native Method)
     01-09 04:17:35.417: E/AndroidRuntime(6848):     at java.lang.reflect.Method.invoke(Method.java:511)
     01-09 04:17:35.417: E/AndroidRuntime(6848):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
     01-09 04:17:35.417: E/AndroidRuntime(6848):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
     01-09 04:17:35.417: E/AndroidRuntime(6848):     at dalvik.system.NativeStart.main(Native Method)
     01-09 04:17:35.417: E/AndroidRuntime(6848): Caused by: android.database.sqlite.SQLiteException: near "tabletool": syntax
 error (code 1): , while compiling: create tabletool(idinteger primary
 key autoincrement ,nametext ,amountnumericunitunit
     01-09 04:17:35.417: E/AndroidRuntime(6848):     at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native
 Method)
     01-09 04:17:35.417: E/AndroidRuntime(6848):     at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:882)
     01-09 04:17:35.417: E/AndroidRuntime(6848):     at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:493)
     01-09 04:17:35.417: E/AndroidRuntime(6848):     at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
     01-09 04:17:35.417: E/AndroidRuntime(6848):     at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
     01-09 04:17:35.417: E/AndroidRuntime(6848):     at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
     01-09 04:17:35.417: E/AndroidRuntime(6848):     at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1663)
     01-09 04:17:35.417: E/AndroidRuntime(6848):     at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1594)
     01-09 04:17:35.417: E/AndroidRuntime(6848):     at com.example.sqlitedatabase.SimpleSQLiteHelper.onCreate(SimpleSQLiteHelper.java:43)
     01-09 04:17:35.417: E/AndroidRuntime(6848):     at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:252)
     01-09 04:17:35.417: E/AndroidRuntime(6848):     at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164)
     01-09 04:17:35.417: E/AndroidRuntime(6848):     at com.example.sqlitedatabase.ToolDataSource.open(ToolDataSource.java:28)
     01-09 04:17:35.417: E/AndroidRuntime(6848):     at com.example.sqlitedatabase.MainActivity.onCreate(MainActivity.java:36)
     01-09 04:17:35.417: E/AndroidRuntime(6848):     at android.app.Activity.performCreate(Activity.java:5104)
     01-09 04:17:35.417: E/AndroidRuntime(6848):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
     01-09 04:17:35.417: E/AndroidRuntime(6848):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
     01-09 04:17:35.417: E/AndroidRuntime(6848):     ... 11 more
4

2 に答える 2

2
ComponentInfo{com.example.sqlitedatabase/com.example.sqlitedatabase.MainActivity}: android.database.sqlite.SQLiteException: near "tabletool": syntax error (code 1): , while compiling: create tabletool(idinteger primary key autoincrement ,nametext ,amountnumericunitunit 01-09 04:17:35.417: E/AndroidRuntime(6848): at 

問題のコードはありませんが、上記の例外スタックに基づいて、テーブル「tabletool」の作成に構文エラーがあるようです

create table 構文が有効であることを確認してください (必要な場所にスペース、コロンなどがあります)。

于 2013-01-09T04:32:26.483 に答える
1

ログを見ると、テーブル クエリが間違っていることがわかりました。

このクエリを次のように変更します

create tabletool(id integer primary key autoincrement ,name text

スペースを維持するのを忘れたログのパラメーターは 2 つしかありません。パラメータとデータ型の間にスペースを入れて試してみてください。それはあなたのために働きます。

あなたが書いたクエリをチェックしidintegerてくださいnametextid integername text

于 2013-01-09T04:38:24.240 に答える