Bonsoir,

Mon projet est une application médicale pour un mobile j'ai implémenté le code qui me permet de faire la connexion à ma base de donnée SQLite.
Mais ça marche pas l'émulateur m'affiche un message d'erreur: fermeture soudaine de l'application.

Et voilà le code:

main.java
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
package com.application.connexion;
 
import android.app.Activity;
import android.os.Bundle;
 
public class Main extends Activity {
/** Called when the activity is first created. */
 
DataBaseHelper mDbHelper = new DataBaseHelper(this);
 
 
@Override
public void onCreate(Bundle savedInstanceState) {
System.out.println("ok connexion");
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}

DataBaseHelper.java
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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
package com.application.connexion;
 
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
 
import android.app.Activity;
import android.content.Context;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
 
public class DataBaseHelper extends SQLiteOpenHelper{
 
//The Android's default system path of your application database.
private static String DB_PATH = "/data/data/com.application.connexion/databases/";
 
private static String DB_NAME = "cnam.db";
 
private SQLiteDatabase myDataBase;
 
private final Context myContext;
 
/**
* Constructor
* Takes and keeps a reference of the passed context in order to access to the application assets and resources.
* @param context
*/
public DataBaseHelper(Context context) {
 
super(context, DB_NAME, null, 1);
this.myContext = context;
try {
createDataBase();
System.out.println("ok bd");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
 
System.out.println("erreur bd");
}
 
}
 
 
/**
* Creates a empty database on the system and rewrites it with your own database.
* */
public void createDataBase() throws IOException{
 
boolean dbExist = checkDataBase();
 
if(dbExist){
System.out.println("ok bd exist");
}else{
 
//By calling this method and empty database will be created into the default system path
//of your application so we are gonna be able to overwrite that database with our database.
this.getReadableDatabase();
 
try {
 
copyDataBase();
 
} catch (IOException e) {
 
throw new Error("Error copying database");
 
}
}
 
}
 
/**
* Check if the database already exist to avoid re-copying the file each time you open the application.
* @return true if it exists, false if it doesn't
*/
private boolean checkDataBase(){
 
SQLiteDatabase checkDB = null;
 
try{
String myPath = DB_PATH + DB_NAME;
checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);
System.out.println("ok connexion");
 
}catch(SQLiteException e){
System.out.println("erreur connexion");
//database does't exist yet.
 
}
 
if(checkDB != null){
 
checkDB.close();
 
}
 
return checkDB != null ? true : false;
}
 
/**
* Copies your database from your local assets-folder to the just created empty database in the
* system folder, from where it can be accessed and handled.
* This is done by transfering bytestream.
* */
private void copyDataBase() throws IOException{
 
//Open your local db as the input stream
InputStream myInput = myContext.getAssets().open(DB_NAME);
 
// Path to the just created empty db
String outFileName = DB_PATH + DB_NAME;
 
//Open the empty db as the output stream
OutputStream myOutput = new FileOutputStream(outFileName);
 
//transfer bytes from the inputfile to the outputfile
byte[] buffer = new byte[1024];
int length;
while ((length = myInput.read(buffer))>0){
myOutput.write(buffer, 0, length);
}
 
//Close the streams
myOutput.flush();
myOutput.close();
myInput.close();
 
}
 
public void openDataBase() throws SQLException{
 
//Open the database
String myPath = DB_PATH + DB_NAME;
myDataBase = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);
 
}
 
@Override
public synchronized void close() {
 
if(myDataBase != null)
myDataBase.close();
 
super.close();
 
}
 
@Override
public void onCreate(SQLiteDatabase db) {
 
}
 
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
 
}
 
// Add your public helper methods to access and get content from the database.
// You could return cursors by doing "return myDataBase.query(....)" so it'd be easy
// to you to create adapters for your views.
 
public class Game extends Activity {
 
public void onCreate(Bundle Game) throws SQLException{
super.onCreate(Game);
setContentView(R.layout.main);
DataBaseHelper myDbHelper = new DataBaseHelper(this);
myDbHelper = new DataBaseHelper(this);
 
/*DataBaseHelper myDbHelper = new DataBaseHelper(this);
myDbHelper = new DataBaseHelper(this);*/
 
 
try {
 
myDbHelper.createDataBase();
 
} catch (IOException ioe) {
 
throw new Error("Unable to create database");
 
}
 
try {
 
myDbHelper.openDataBase();
 
}catch(SQLException sqle){
 
throw sqle;
 
}}}}

et voilà les erreurs de logcat:
04-01 21:33:22.893: ERROR/vold(538): Error opening switch name path '/sys/class/switch/test2' (No such file or directory)
04-01 21:33:22.893: ERROR/vold(538): Error bootstrapping switch '/sys/class/switch/test2' (m)
04-01 21:33:22.893: ERROR/vold(538): Error opening switch name path '/sys/class/switch/test' (No such file or directory)
04-01 21:33:22.893: ERROR/vold(538): Error bootstrapping switch '/sys/class/switch/test' (m)
04-01 21:33:23.033: ERROR/flash_image(544): can't find recovery partition
04-01 21:34:03.722: ERROR/MemoryHeapBase(569): error opening /dev/pmem: No such file or directory
04-01 21:34:03.733: ERROR/SurfaceFlinger(569): Couldn't open /sys/power/wait_for_fb_sleep or /sys/power/wait_for_fb_wake
04-01 21:34:03.852: ERROR/GLLogger(569): couldn't load <libhgl.so> library (Cannot find library)
04-01 21:34:05.573: ERROR/GLLogger(569): couldn't load <libhgl.so> library (Cannot find library)
04-01 21:34:16.401: ERROR/BatteryService(569): Could not open '/sys/class/power_supply/usb/online'
04-01 21:34:16.418: ERROR/BatteryService(569): Could not open '/sys/class/power_supply/battery/batt_vol'
04-01 21:34:16.435: ERROR/BatteryService(569): Could not open '/sys/class/power_supply/battery/batt_temp'
04-01 21:34:17.951: ERROR/EventHub(569): could not get driver version for /dev/input/mouse0, Not a typewriter
04-01 21:34:18.011: ERROR/EventHub(569): could not get driver version for /dev/input/mice, Not a typewriter
04-01 21:34:18.463: ERROR/System(569): Failure starting core service
04-01 21:34:18.463: ERROR/System(569): java.lang.SecurityException
04-01 21:34:18.463: ERROR/System(569): at android.os.BinderProxy.transact(Native Method)
04-01 21:34:18.463: ERROR/System(569): at android.os.ServiceManagerProxy.addService(ServiceManagerNative.java:146)
04-01 21:34:18.463: ERROR/System(569): at android.os.ServiceManager.addService(ServiceManager.java:72)
04-01 21:34:18.463: ERROR/System(569): at com.android.server.ServerThread.run(SystemServer.java:163)
04-01 21:34:18.504: ERROR/AndroidRuntime(569): Crash logging skipped, no checkin service
04-01 21:34:21.613: ERROR/LockPatternKeyguardView(569): Failed to bind to GLS while checking for account
04-01 21:34:35.372: ERROR/ApplicationContext(569): Couldn't create directory for SharedPreferences file shared_prefs/wallpaper-hints.xml