Bonjour,

Je suis actuellement en train de développer une application android permettant de tracer des lignes sur un plan quadriller. Seulement après avoir tracer ces lignes j'effectue une sauvegarde de mon plan, après rechargement de celui ci, des fois le message suivant apparaît :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
05-13 15:29:53.831: E/AndroidRuntime(5074): FATAL EXCEPTION: main
05-13 15:29:53.831: E/AndroidRuntime(5074): java.lang.OutOfMemoryError
05-13 15:29:53.831: E/AndroidRuntime(5074): 	at android.graphics.Bitmap.nativeCreate(Native Method)
05-13 15:29:53.831: E/AndroidRuntime(5074): 	at android.graphics.Bitmap.createBitmap(Bitmap.java:640)
05-13 15:29:53.831: E/AndroidRuntime(5074): 	at android.graphics.Bitmap.createBitmap(Bitmap.java:620)
05-13 15:29:53.831: E/AndroidRuntime(5074): 	at com.example.ligne.indoor.Source.drawSource(Source.java:158)
05-13 15:29:53.831: E/AndroidRuntime(5074): 	at com.example.ligne.indoor.PlanSimulation.draw(PlanSimulation.java:103)
05-13 15:29:53.831: E/AndroidRuntime(5074): 	at com.example.ligne.indoor.Floor.draw(Floor.java:128)
05-13 15:29:53.831: E/AndroidRuntime(5074): 	at com.example.ligne.indoor.Plan.onDraw(Plan.java:364)
05-13 15:29:53.831: E/AndroidRuntime(5074): 	at android.view.View.draw(View.java:13776)
05-13 15:29:53.831: E/AndroidRuntime(5074): 	at android.view.View.getDisplayList(View.java:12727)
05-13 15:29:53.831: E/AndroidRuntime(5074): 	at android.view.View.getDisplayList(View.java:12771)
05-13 15:29:53.831: E/AndroidRuntime(5074): 	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3205)
on m'indique donc des erreurs à chaque fois au niveau des bitmaps, par exemple pour Plan.onDraw

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
	protected void onDraw(Canvas canvas) {
		canvas.save();
		paint.setStyle(Style.FILL_AND_STROKE);
		Bitmap tmp = drawEchelle();
		Bitmap ori = drawOrigin();
		if (ori != null)
			canvas.drawBitmap(ori, 0, 0, paint);
		if (tmp != null)
			canvas.drawBitmap(tmp, 0, 0, paint);
 
		currentFloor.draw(getWidth(), getHeight());
		canvas.drawBitmap(currentFloor.getBitmap(), 0, 0, paint);
	}

Je ne sais pas comment éviter ce problème, si quelqu'un a des idées ?