Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建数据库时的SQLiteException-SQLiteException靠近;安卓;_Java_Android_Sqlite - Fatal编程技术网

Java 创建数据库时的SQLiteException-SQLiteException靠近;安卓;

Java 创建数据库时的SQLiteException-SQLiteException靠近;安卓;,java,android,sqlite,Java,Android,Sqlite,我有一个服务(如下所列)正在尝试创建数据库表。当执行PlayerTable中onCreate()中的sql时,我遇到了一个我不理解的异常。下面列出了所有代码。基本上,服务会启动,获取一个SQLiteDatabase对象,该对象反过来在ClueBuddyOpenHelper上调用onCreate(),然后在PlayerTable中调用onCreate()。执行sql时会发生异常。任何帮助都将不胜感激 06-03 00:47:43.043: E/AndroidRuntime(4347): FATAL

我有一个服务(如下所列)正在尝试创建数据库表。当执行PlayerTable中onCreate()中的sql时,我遇到了一个我不理解的异常。下面列出了所有代码。基本上,服务会启动,获取一个SQLiteDatabase对象,该对象反过来在ClueBuddyOpenHelper上调用onCreate(),然后在PlayerTable中调用onCreate()。执行sql时会发生异常。任何帮助都将不胜感激

06-03 00:47:43.043: E/AndroidRuntime(4347): FATAL EXCEPTION: IntentService[NewGameService]
06-03 00:47:43.043: E/AndroidRuntime(4347): android.database.sqlite.SQLiteException: near "android": syntax error
06-03 00:47:43.043: E/AndroidRuntime(4347):     at android.database.sqlite.SQLiteStatement.native_executeSql(Native Method)
06-03 00:47:43.043: E/AndroidRuntime(4347):     at android.database.sqlite.SQLiteStatement.executeUpdateDelete(SQLiteStatement.java:90)
06-03 00:47:43.043: E/AndroidRuntime(4347):     at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1899)
06-03 00:47:43.043: E/AndroidRuntime(4347):     at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1839)
06-03 00:47:43.043: E/AndroidRuntime(4347):     at ws.hamacher.cluebuddy.db.PlayerTable.onCreate(PlayerTable.java:32)
06-03 00:47:43.043: E/AndroidRuntime(4347):     at ws.hamacher.cluebuddy.db.ClueBuddyOpenHelper.onCreate(ClueBuddyOpenHelper.java:30)
06-03 00:47:43.043: E/AndroidRuntime(4347):     at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:165)
06-03 00:47:43.043: E/AndroidRuntime(4347):     at ws.hamacher.cluebuddy.service.NewGameService.onHandleIntent(NewGameService.java:18)
06-03 00:47:43.043: E/AndroidRuntime(4347):     at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
06-03 00:47:43.043: E/AndroidRuntime(4347):     at android.os.Handler.dispatchMessage(Handler.java:99)
06-03 00:47:43.043: E/AndroidRuntime(4347):     at android.os.Looper.loop(Looper.java:137)
06-03 00:47:43.043: E/AndroidRuntime(4347):     at android.os.HandlerThread.run(HandlerThread.java:60)
代码:


正如guido所指出的,您需要进行更改

db.execSQL(db.toString());
致:


它将db对象的字符串解释作为SQL语句发送。

正如guido所指出的,您需要进行更改

db.execSQL(db.toString());
致:


它将db对象的字符串解释作为SQL语句发送。

db.execSQL(db.toString())onCreate()中的最后一行:是打字错误吗?它应该是
db.execSQL(sb.toString())!在这种情况下,请使用更好的变量名。理想情况下,所有数据库操作都必须是扩展SQLiteOnlineHelper的一个类中的一个。为什么需要一个单独的类来创建数据库中的每个表。我不知道这是否有问题。我现在正在学习
SQLite
,但是我认为
数据库版本应该是一个整数。所以'R.string.db_version'可能是错误的。尝试将其解析为
整数
,然后将其传递给超类的
构造函数
db.execSQL(db.toString())onCreate()中的最后一行:是打字错误吗?它应该是
db.execSQL(sb.toString())!在这种情况下,请使用更好的变量名。理想情况下,所有数据库操作都必须是扩展SQLiteOnlineHelper的一个类中的一个。为什么需要一个单独的类来创建数据库中的每个表。我不知道这是否有问题。我现在正在学习
SQLite
,但是我认为
数据库版本应该是一个整数。所以'R.string.db_version'可能是错误的。尝试将其解析为一个
整数
,然后将其传递给超类的
构造函数
db.execSQL(sb.toString());