Bonjour

j'ai un probleme et je suis debutant en android.
J'ai fait cette application mais je ne trouve pas le probleme le code est :
*********************************************************************
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
package com.oreilly.android.tp1.tasks;
 
import android.content.Context;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
 
import android.database.sqlite.SQLiteOpenHelper;
 
public class TaskSqliteOpenHelper extends SQLiteOpenHelper  { 
 
       public static final int VERSION=1; 	
       public static final String DB_NAME="tasks_db.sqlite";
	   public static final String TASKS_TABLE ="tasks";
	   public static final String task_id ="id";
	   public static final String task_name ="name";
	   public static final String task_complete ="complete";
 
	public TaskSqliteOpenHelper(Context context) {
		super(context,DB_NAME,null, VERSION);
 
	}
 
	@Override
	public void onCreate(SQLiteDatabase db) {
		db.execSQL(
		         "create table"+ TASKS_TABLE + "(" +
		         task_id + "integer primary key autoincrement not null," +
		         task_name + "text,"  +
		         task_complete +  "text);" 
 
		         );    
 
	}
 
	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)throws SQLException {
	db.execSQL("drop table if exists"+ TASKS_TABLE);
 
	}
 
}
 ***********************************************************************
package com.oreilly.android.tp1;
 
import java.util.ArrayList;
 
import com.oreilly.android.tp1.tasks.Task;
import com.oreilly.android.tp1.tasks.TaskSqliteOpenHelper;
 
import android.app.Application;
import android.app.Dialog;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.widget.TextView;
 
import static com.oreilly.android.tp1.tasks.TaskSqliteOpenHelper.*;
 
public class taskManagerApplication extends Application {
 
	private ArrayList<Task> currentTasks;
	private SQLiteDatabase database;
 
	@Override
	public void onCreate() {
		super.onCreate();
 
		TaskSqliteOpenHelper helper=new TaskSqliteOpenHelper(this);
		database=helper.getWritableDatabase();
	if(null ==currentTasks){
		loadTasks();
	}
	}
	private void loadTasks()throws SQLException {
		boolean work=true;
		try{
		currentTasks=new ArrayList<Task>();
		Cursor tasksCursor=database.query(TASKS_TABLE,new String[]{task_id,task_name,task_complete},
		null,null,null,null,String.format("%s,%s",task_complete,task_name));
		tasksCursor.moveToFirst();
		Task t;
		if(! tasksCursor.isAfterLast()){
		do {
			long id=tasksCursor.getLong(0);
			String name=tasksCursor.getString(1);
			String boolValue=tasksCursor.getString(2);
			boolean complete=Boolean.parseBoolean(boolValue);
			t=new Task(name);
			t.setId(id);
			t.setComplete(complete);
			currentTasks.add(t);
			}while(tasksCursor.moveToNext());
		}
			tasksCursor.close();}catch (Exception e){work=false;}
			finally{
				if(work){
					Dialog d=new Dialog(this);
					d.setTitle("mamchet");
					TextView tv=new TextView(this);
					tv.setText("imchet");
					d.setContentView(tv);
					d.show();
				}
			}
 
		}
 
 
	public void setCurrentTasks(ArrayList<Task> currentTasks ){
		this.currentTasks=currentTasks;
 
	}
	public ArrayList<Task> getCurrentTasks(){
		return currentTasks ;
 
	}
    public void addTask(Task t){
    	assert(null !=t);
    	ContentValues values=new ContentValues();
    	values.put(task_name,t.getName());
    	values.put(task_complete,Boolean.toString(t.isComplete()));
    	long id =database.insert(TASKS_TABLE,null,values);
    	t.setId(id);
    	currentTasks.add(t);
    }
    public void saveTask(Task t){
    	assert(null !=t);
    	ContentValues values=new ContentValues();
    	values.put(task_name,t.getName());
    	values.put(task_complete,Boolean.toString(t.isComplete()));
    	long id=t.getId();
    	String where=String.format("%s=%d",task_id,id);
    	database.update(TASKS_TABLE,values,where,new String[]{id+""});
 
    }
 
 
}
************************************************************************************
l'erreur c'est sa :
***********************************************************
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
03-27 02:11:56.738: E/Database(232): Failure 1 (near "tabletasks": syntax error) on 0x133830 when preparing 'create tabletasks(idinteger primary key autoincrement not null,nametext,completetext);'.
03-27 02:11:56.788: D/AndroidRuntime(232): Shutting down VM
03-27 02:11:56.808: W/dalvikvm(232): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
03-27 02:11:56.818: E/AndroidRuntime(232): Uncaught handler: thread main exiting due to uncaught exception
03-27 02:11:56.868: E/AndroidRuntime(232): java.lang.RuntimeException: Unable to create application com.oreilly.android.tp1.taskManagerApplication: android.database.sqlite.SQLiteException: near "tabletasks": syntax error: create tabletasks(idinteger primary key autoincrement not null,nametext,completetext);
03-27 02:11:56.868: E/AndroidRuntime(232): 	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4008)
03-27 02:11:56.868: E/AndroidRuntime(232): 	at android.app.ActivityThread.access$2900(ActivityThread.java:119)
03-27 02:11:56.868: E/AndroidRuntime(232): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1901)
03-27 02:11:56.868: E/AndroidRuntime(232): 	at android.os.Handler.dispatchMessage(Handler.java:99)
03-27 02:11:56.868: E/AndroidRuntime(232): 	at android.os.Looper.loop(Looper.java:123)
03-27 02:11:56.868: E/AndroidRuntime(232): 	at android.app.ActivityThread.main(ActivityThread.java:4363)
03-27 02:11:56.868: E/AndroidRuntime(232): 	at java.lang.reflect.Method.invokeNative(Native Method)
03-27 02:11:56.868: E/AndroidRuntime(232): 	at java.lang.reflect.Method.invoke(Method.java:521)
03-27 02:11:56.868: E/AndroidRuntime(232): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
03-27 02:11:56.868: E/AndroidRuntime(232): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
03-27 02:11:56.868: E/AndroidRuntime(232): 	at dalvik.system.NativeStart.main(Native Method)
03-27 02:11:56.868: E/AndroidRuntime(232): Caused by: android.database.sqlite.SQLiteException: near "tabletasks": syntax error: create tabletasks(idinteger primary key autoincrement not null,nametext,completetext);
03-27 02:11:56.868: E/AndroidRuntime(232): 	at android.database.sqlite.SQLiteDatabase.native_execSQL(Native Method)
03-27 02:11:56.868: E/AndroidRuntime(232): 	at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1609)
03-27 02:11:56.868: E/AndroidRuntime(232): 	at com.oreilly.android.tp1.tasks.TaskSqliteOpenHelper.onCreate(TaskSqliteOpenHelper.java:25)
03-27 02:11:56.868: E/AndroidRuntime(232): 	at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:106)
03-27 02:11:56.868: E/AndroidRuntime(232): 	at com.oreilly.android.tp1.taskManagerApplication.onCreate(taskManagerApplication.java:27)
03-27 02:11:56.868: E/AndroidRuntime(232): 	at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:969)
03-27 02:11:56.868: E/AndroidRuntime(232): 	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4005)
03-27 02:11:56.868: E/AndroidRuntime(232): 	... 10 more
03-27 02:11:56.998: I/dalvikvm(232): threadid=7: reacting to signal 3
03-27 02:11:58.058: I/dalvikvm(232): Wrote stack trace to '/data/anr/traces.txt'
03-27 02:16:57.014: I/Process(232): Sending signal. PID: 232 SIG: 9
03-27 02:17:27.769: E/Database(250): Failure 1 (near "tabletasks": syntax error) on 0x12dbc8 when preparing 'create tabletasks(idinteger primary key autoincrement not null,nametext,completetext);'.
03-27 02:17:27.778: D/AndroidRuntime(250): Shutting down VM
03-27 02:17:27.778: W/dalvikvm(250): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
03-27 02:17:27.778: E/AndroidRuntime(250): Uncaught handler: thread main exiting due to uncaught exception
03-27 02:17:27.798: E/AndroidRuntime(250): java.lang.RuntimeException: Unable to create application com.oreilly.android.tp1.taskManagerApplication: android.database.sqlite.SQLiteException: near "tabletasks": syntax error: create tabletasks(idinteger primary key autoincrement not null,nametext,completetext);
03-27 02:17:27.798: E/AndroidRuntime(250): 	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4008)
03-27 02:17:27.798: E/AndroidRuntime(250): 	at android.app.ActivityThread.access$2900(ActivityThread.java:119)
03-27 02:17:27.798: E/AndroidRuntime(250): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1901)
03-27 02:17:27.798: E/AndroidRuntime(250): 	at android.os.Handler.dispatchMessage(Handler.java:99)
03-27 02:17:27.798: E/AndroidRuntime(250): 	at android.os.Looper.loop(Looper.java:123)
03-27 02:17:27.798: E/AndroidRuntime(250): 	at android.app.ActivityThread.main(ActivityThread.java:4363)
03-27 02:17:27.798: E/AndroidRuntime(250): 	at java.lang.reflect.Method.invokeNative(Native Method)
03-27 02:17:27.798: E/AndroidRuntime(250): 	at java.lang.reflect.Method.invoke(Method.java:521)
03-27 02:17:27.798: E/AndroidRuntime(250): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
03-27 02:17:27.798: E/AndroidRuntime(250): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
03-27 02:17:27.798: E/AndroidRuntime(250): 	at dalvik.system.NativeStart.main(Native Method)
03-27 02:17:27.798: E/AndroidRuntime(250): Caused by: android.database.sqlite.SQLiteException: near "tabletasks": syntax error: create tabletasks(idinteger primary key autoincrement not null,nametext,completetext);
03-27 02:17:27.798: E/AndroidRuntime(250): 	at android.database.sqlite.SQLiteDatabase.native_execSQL(Native Method)
03-27 02:17:27.798: E/AndroidRuntime(250): 	at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1609)
03-27 02:17:27.798: E/AndroidRuntime(250): 	at com.oreilly.android.tp1.tasks.TaskSqliteOpenHelper.onCreate(TaskSqliteOpenHelper.java:25)
03-27 02:17:27.798: E/AndroidRuntime(250): 	at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:106)
03-27 02:17:27.798: E/AndroidRuntime(250): 	at com.oreilly.android.tp1.taskManagerApplication.onCreate(taskManagerApplication.java:27)
03-27 02:17:27.798: E/AndroidRuntime(250): 	at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:969)
03-27 02:17:27.798: E/AndroidRuntime(250): 	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4005)
03-27 02:17:27.798: E/AndroidRuntime(250): 	... 10 more
03-27 02:17:27.838: I/dalvikvm(250): threadid=7: reacting to signal 3
03-27 02:17:27.858: I/dalvikvm(250): Wrote stack trace to '/data/anr/traces.txt'
Merci