Android:如何解决执行doInBackground()时发生的java.lang.RuntimeException错误?
我在创建SQL表时运行了一些错误,报告Android:如何解决执行doInBackground()时发生的java.lang.RuntimeException错误?,android,sqlite,Android,Sqlite,我在创建SQL表时运行了一些错误,报告java.lang.RuntimeException:执行doInBackground()时发生错误,原因是:android.database.sqlite.SQLiteException:靠近“组”:语法错误(代码1):一下午都在试图解决问题,但没有成功……有人能提供帮助吗?非常感谢 主要练习: 日志: 07-21 20:32:20.940:E/SQLiteLog(17813):(1)靠近“组”:语法错误 07-21 20:32:20.955:W/dalv
java.lang.RuntimeException:执行doInBackground()时发生错误,原因是:android.database.sqlite.SQLiteException:靠近“组”:语法错误(代码1):
一下午都在试图解决问题,但没有成功……有人能提供帮助吗?非常感谢
主要练习:
日志:
07-21 20:32:20.940:E/SQLiteLog(17813):(1)靠近“组”:语法错误
07-21 20:32:20.955:W/dalvikvm(17813):threadid=11:线程以未捕获异常退出(组=0x40e202a0)
07-21 20:32:21.000:E/AndroidRuntime(17813):致命异常:AsyncTask#1
07-21 20:32:21.000:E/AndroidRuntime(17813):java.lang.RuntimeException:执行doInBackground()时出错
07-21 20:32:21.000:E/AndroidRuntime(17813):在android.os.AsyncTask$3.done(AsyncTask.java:299)
07-21 20:32:21.000:E/AndroidRuntime(17813):位于java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
07-21 20:32:21.000:E/AndroidRuntime(17813):位于java.util.concurrent.FutureTask.setException(FutureTask.java:124)
07-21 20:32:21.000:E/AndroidRuntime(17813):在java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
07-21 20:32:21.000:E/AndroidRuntime(17813):在java.util.concurrent.FutureTask.run(FutureTask.java:137)
07-21 20:32:21.000:E/AndroidRuntime(17813):在android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
07-21 20:32:21.000:E/AndroidRuntime(17813):位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
07-21 20:32:21.000:E/AndroidRuntime(17813):位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
07-21 20:32:21.000:E/AndroidRuntime(17813):在java.lang.Thread.run(Thread.java:856)
07-21 20:32:21.000:E/AndroidRuntime(17813):由以下原因引起:android.database.sqlite.SQLiteException:靠近“组”:语法错误(代码1):,编译时:创建表练习(_idinteger主键自动递增,名称文本,组文本,计算文本);
07-21 20:32:21.000:E/AndroidRuntime(17813):在android.database.sqlite.SQLiteConnection.nativePrepareStatement(本机方法)
07-21 20:32:21.000:E/AndroidRuntime(17813):在android.database.sqlite.SQLiteConnection.acquiredPreparedStatement(SQLiteConnection.java:1013)
07-21 20:32:21.000:E/AndroidRuntime(17813):在android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:624)
07-21 20:32:21.000:E/AndroidRuntime(17813):在android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
07-21 20:32:21.000:E/AndroidRuntime(17813):位于android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:58)
07-21 20:32:21.000:E/AndroidRuntime(17813):位于android.database.sqlite.SQLiteStatement.(SQLiteStatement.java:31)
07-21 20:32:21.000:E/AndroidRuntime(17813):在android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1663)
07-21 20:32:21.000:E/AndroidRuntime(17813):位于android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1594)
07-21 20:32:21.000:E/AndroidRuntime(17813):在com.abc。DatabaseConnector$DatabaseOpenHelper.onCreate(DatabaseConnector.java:90)
07-21 20:32:21.000:E/AndroidRuntime(17813):位于android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:252)
07-21 20:32:21.000:E/AndroidRuntime(17813):位于android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164)
07-21 20:32:21.000:E/AndroidRuntime(17813):在com。美国广播公司。打开(DatabaseConnector.java:26)
07-21 20:32:21.000:E/AndroidRuntime(17813):在com。美国广播公司。abc.Exercises\u Main$Get\u Ex\u Data\u Task.doInBackground(Exercises\u Main.java:65)
07-21 20:32:21.000:E/AndroidRuntime(17813):在com。美国广播公司。abc.Exercises\u Main$Get\u Ex\u Data\u Task.doInBackground(Exercises\u Main.java:1)
07-21 20:32:21.000:E/AndroidRuntime(17813):在android.os.AsyncTask$2.call(AsyncTask.java:287)
07-21 20:32:21.000:E/AndroidRuntime(17813):在java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
组
是一个不能在列名称中使用的组。请给你的专栏起个别的名字
什么是stacktrace
Java stacktrace是您在“Logcat:”部分中拥有的,从Java.lang.RuntimeException开始:执行doInBackground()
行直到您发布的Logcat条目末尾时发生错误。您读过stacktrace吗?更改名称和组字段名称,试试看again@pearmak请参阅Commonware的答案非常感谢!它起作用了!!非常感谢!!我真的不知道团体不能用!
private class Get_Ex_Data_Task extends AsyncTask<Object, Object, Cursor>
{
DatabaseConnector databaseConnector = new DatabaseConnector(Exercises_Main.this);
@Override
protected Cursor doInBackground(Object... params)
{
databaseConnector.open(); //LINE 65
return databaseConnector.get_All_Ex_Data();
}
public Cursor get_All_Ex_Data()
{
return database.query("DB_ex", new String[] {"_id", "name"}, null, null, null, null, "name");
}
private class DatabaseOpenHelper extends SQLiteOpenHelper
{
public DatabaseOpenHelper(Context context, String name, CursorFactory factory, int version)
{
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db)
{
String createQuery = "CREATE TABLE exercises" +
"(_id integer primary key autoincrement," +
"name TEXT, group TEXT, calory TEXT);";
db.execSQL(createQuery);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
}
}
07-21 20:32:20.940: E/SQLiteLog(17813): (1) near "group": syntax error
07-21 20:32:20.955: W/dalvikvm(17813): threadid=11: thread exiting with uncaught exception (group=0x40e202a0)
07-21 20:32:21.000: E/AndroidRuntime(17813): FATAL EXCEPTION: AsyncTask #1
07-21 20:32:21.000: E/AndroidRuntime(17813): java.lang.RuntimeException: An error occured while executing doInBackground()
07-21 20:32:21.000: E/AndroidRuntime(17813): at android.os.AsyncTask$3.done(AsyncTask.java:299)
07-21 20:32:21.000: E/AndroidRuntime(17813): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
07-21 20:32:21.000: E/AndroidRuntime(17813): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
07-21 20:32:21.000: E/AndroidRuntime(17813): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
07-21 20:32:21.000: E/AndroidRuntime(17813): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
07-21 20:32:21.000: E/AndroidRuntime(17813): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
07-21 20:32:21.000: E/AndroidRuntime(17813): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
07-21 20:32:21.000: E/AndroidRuntime(17813): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
07-21 20:32:21.000: E/AndroidRuntime(17813): at java.lang.Thread.run(Thread.java:856)
07-21 20:32:21.000: E/AndroidRuntime(17813): Caused by: android.database.sqlite.SQLiteException: near "group": syntax error (code 1): , while compiling: CREATE TABLE exercises(_id integer primary key autoincrement,name TEXT, group TEXT, calory TEXT);
07-21 20:32:21.000: E/AndroidRuntime(17813): at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
07-21 20:32:21.000: E/AndroidRuntime(17813): at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1013)
07-21 20:32:21.000: E/AndroidRuntime(17813): at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:624)
07-21 20:32:21.000: E/AndroidRuntime(17813): at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
07-21 20:32:21.000: E/AndroidRuntime(17813): at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
07-21 20:32:21.000: E/AndroidRuntime(17813): at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
07-21 20:32:21.000: E/AndroidRuntime(17813): at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1663)
07-21 20:32:21.000: E/AndroidRuntime(17813): at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1594)
07-21 20:32:21.000: E/AndroidRuntime(17813): at com.abc. abc.DatabaseConnector$DatabaseOpenHelper.onCreate(DatabaseConnector.java:90)
07-21 20:32:21.000: E/AndroidRuntime(17813): at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:252)
07-21 20:32:21.000: E/AndroidRuntime(17813): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164)
07-21 20:32:21.000: E/AndroidRuntime(17813): at com. abc. abc.DatabaseConnector.open(DatabaseConnector.java:26)
07-21 20:32:21.000: E/AndroidRuntime(17813): at com. abc. abc.Exercises_Main$Get_Ex_Data_Task.doInBackground(Exercises_Main.java:65)
07-21 20:32:21.000: E/AndroidRuntime(17813): at com. abc. abc.Exercises_Main$Get_Ex_Data_Task.doInBackground(Exercises_Main.java:1)
07-21 20:32:21.000: E/AndroidRuntime(17813): at android.os.AsyncTask$2.call(AsyncTask.java:287)
07-21 20:32:21.000: E/AndroidRuntime(17813): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)