Bonsoir,
j'éprouve quelque difféculté à me conneter avec une base de donnée sqlite sous android je me suis inspiré de ce tutoriel http://a-renouard.developpez.com/tut...ndroid/sqlite/ j'ai fait trois classe les voici

classe metier User

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
package com.example.crud;
 
public class User {
 
	private int id;
	private String username;
	private String password;
	private String email;
 
	public User() {
		super();
	}
	public User(int id, String username, String password, String email) {
		super();
		this.id = id;
		this.username = username;
		this.password = password;
		this.email = email;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
 
}
classe pour créer la base et gérer la connexion avec la base de donnée sqlite

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
package com.example.crud;
 
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
 
public class DatabaseHandler extends SQLiteOpenHelper{
 
	public static final String USER_KEY="idu";
	public static final String USERNAME="username";
	public static final String PASSWORD="password";
	public static final String EMAIL="email";
	public static final String TABLE="user";
	public static final String TABLE_CEATE=
	"CREATE TABLE "+TABLE+" ("+
	USER_KEY+" INTEGER PRIMARY KEY AUTOINCREMENT,"+
	USERNAME+" TEXT,"+
	PASSWORD+", TEXT"+
	EMAIL+" TEXT);";
	public static final String TABLE_DROP="DROP TABLE IF EXISTS "+TABLE+";";
 
	public DatabaseHandler(Context context, String name, CursorFactory factory,
			int version) {
		super(context, name, factory, version);
 
	}
 
	@Override
	public void onCreate(SQLiteDatabase db) {
		db.execSQL(TABLE_CEATE);
 
	}
 
	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		db.execSQL(TABLE_DROP);
		onCreate(db);
 
	}
 
}
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
 
 
package com.example.crud;
 
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
 
public class UserDAO {
 
	private static final int VERSION_BDD = 2;
	private static final String NOM_BDD = "users.db";
 
	public static final String USER_KEY="idu";
	public static final String USERNAME="username";
	public static final String PASSWORD="password";
	public static final String EMAIL="email";
	public static final String TABLE="user";
	public static final String TABLE_CEATE=
	"CREATE TABLE "+TABLE+" ("+
	USER_KEY+" INTEGER PRIMARY KEY AUTOINCREMENT,"+
	USERNAME+" TEXT,"+
	PASSWORD+", TEXT"+
	EMAIL+" TEXT);";
	public static final String TABLE_DROP="DROP TABLE IF EXISTS "+TABLE+";";
	static private SQLiteDatabase bdd=null;
	DatabaseHandler dtb;
 
	public UserDAO(Context cntx){
		dtb=new DatabaseHandler(cntx, NOM_BDD, null, VERSION_BDD);
	}
 
	public void open(){
		if(bdd!=null){
			bdd=dtb.getWritableDatabase();
		}
 
	}
 
	public long insertUser(User user){
 
		ContentValues values = new ContentValues();
		values.put(USERNAME, user.getUsername());
		values.put(PASSWORD, user.getPassword());
		values.put(EMAIL, user.getEmail());
		return bdd.insert(TABLE, null, values);
	}
 
	public User getUser(String username){
 
		Cursor c = bdd.rawQuery("select " + USERNAME + " from " + TABLE
				+ " where username='?'", new String[]{username});
		return cursorToLivre(c);
 
	}
 
	private User cursorToLivre(Cursor c){
		//si aucun élément n'a été retourné dans la requête, on renvoie null
		if (c.getCount() == 0)
			return null;
 
		//Sinon on se place sur le premier élément
		c.moveToFirst();
		//On créé un livre
		User user = new User();
		//on lui affecte toutes les infos grâce aux infos contenues dans le Cursor
		user.setId(c.getInt(0));
		user.setUsername(c.getString(1));
		user.setEmail(c.getString(3));
		//On ferme le cursor
		c.close();
 
		//On retourne le livre
		return user;
	}
 
 
 
}

finalement l'activité qui appelle le tous
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
 
package com.example.crud;
 
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.Toast;
 
public class MainActivity extends Activity {
 
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
 
		UserDAO userd=new UserDAO(this);
		User user=new User(1, "login", "passwo", "email@gmail.com");
 
		userd.open();
		userd.insertUser(user);
 
		User userresultat=userd.getUser(user.getUsername());
		 if(userresultat != null){
	        	//On affiche les infos du livre dans un Toast
	        	Toast.makeText(this, userresultat.toString(), Toast.LENGTH_LONG).show();
		 }
	}
 
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}
 
}

et voilà ce que m'affiche le logcat

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
 
12-23 16:41:12.436: E/Trace(1917): error opening trace file: No such file or directory (2)
12-23 16:41:12.446: W/Trace(1917): Unexpected value from nativeGetEnabledTags: 0
12-23 16:41:12.446: W/Trace(1917): Unexpected value from nativeGetEnabledTags: 0
12-23 16:41:12.446: W/Trace(1917): Unexpected value from nativeGetEnabledTags: 0
12-23 16:41:12.606: W/Trace(1917): Unexpected value from nativeGetEnabledTags: 0
12-23 16:41:12.606: W/Trace(1917): Unexpected value from nativeGetEnabledTags: 0
12-23 16:41:13.106: D/AndroidRuntime(1917): Shutting down VM
12-23 16:41:13.106: W/dalvikvm(1917): threadid=1: thread exiting with uncaught exception (group=0xb5cb3908)
12-23 16:41:13.136: E/AndroidRuntime(1917): FATAL EXCEPTION: main
12-23 16:41:13.136: E/AndroidRuntime(1917): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.crud/com.example.crud.MainActivity}: java.lang.NullPointerException
12-23 16:41:13.136: E/AndroidRuntime(1917): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
12-23 16:41:13.136: E/AndroidRuntime(1917): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
12-23 16:41:13.136: E/AndroidRuntime(1917): 	at android.app.ActivityThread.access$600(ActivityThread.java:141)
12-23 16:41:13.136: E/AndroidRuntime(1917): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
12-23 16:41:13.136: E/AndroidRuntime(1917): 	at android.os.Handler.dispatchMessage(Handler.java:99)
12-23 16:41:13.136: E/AndroidRuntime(1917): 	at android.os.Looper.loop(Looper.java:137)
12-23 16:41:13.136: E/AndroidRuntime(1917): 	at android.app.ActivityThread.main(ActivityThread.java:5039)
12-23 16:41:13.136: E/AndroidRuntime(1917): 	at java.lang.reflect.Method.invokeNative(Native Method)
12-23 16:41:13.136: E/AndroidRuntime(1917): 	at java.lang.reflect.Method.invoke(Method.java:511)
12-23 16:41:13.136: E/AndroidRuntime(1917): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
12-23 16:41:13.136: E/AndroidRuntime(1917): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
12-23 16:41:13.136: E/AndroidRuntime(1917): 	at dalvik.system.NativeStart.main(Native Method)
12-23 16:41:13.136: E/AndroidRuntime(1917): Caused by: java.lang.NullPointerException
12-23 16:41:13.136: E/AndroidRuntime(1917): 	at com.example.crud.UserDAO.insertUser(UserDAO.java:45)
12-23 16:41:13.136: E/AndroidRuntime(1917): 	at com.example.crud.MainActivity.onCreate(MainActivity.java:19)
12-23 16:41:13.136: E/AndroidRuntime(1917): 	at android.app.Activity.performCreate(Activity.java:5104)
12-23 16:41:13.136: E/AndroidRuntime(1917): 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
12-23 16:41:13.136: E/AndroidRuntime(1917): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
12-23 16:41:13.136: E/AndroidRuntime(1917): 	... 11 more
je suis débutant sur android et je n'arrive pas à reconnaitre la source de l'erreur.Merci infiniment de votre aide