Je développe actuellement une application pour un projet scolaire, et je souhaite maintenant utiliser canvas pour répondre à une fonctionnalité du cahier des charges. Seulement impossible de lancer mon application : elle compile mais j'obtiens directement un force close. J'ai donc créé un nouveau programme avec aucune fonctionnalité pour voir où était le problème : si vous pouvez m'aider à comprendre où ça déraille dans ce court code, cela m'aiderait beaucoup :
MainActivity.java
package com.example.testscreen;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.view.View;
public class MainActivity extends Activity {
screen ecran = new screen(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(ecran);
}
public class screen extends View {
public screen(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawColor(Color.BLUE);
}
}
}
Et voici le logcat :
05-26 00:17:32.551: I/Process(5079): Sending signal. PID: 5079 SIG: 9 05-26 00:17:45.403: D/AndroidRuntime(5279): Shutting down VM 05-26 00:17:45.403: W/dalvikvm(5279): threadid=1: thread exiting with uncaught exception (group=0x40fb22a0) 05-26 00:17:45.403: E/AndroidRuntime(5279): FATAL EXCEPTION: main 05-26 00:17:45.403: E/AndroidRuntime(5279): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.testscreen/com.example.testscreen.MainActivity}: java.lang.NullPointerException 05-26 00:17:45.403: E/AndroidRuntime(5279): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2016) 05-26 00:17:45.403: E/AndroidRuntime(5279): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2117) 05-26 00:17:45.403: E/AndroidRuntime(5279): at android.app.ActivityThread.access$700(ActivityThread.java:134) 05-26 00:17:45.403: E/AndroidRuntime(5279): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1218) 05-26 00:17:45.403: E/AndroidRuntime(5279): at android.os.Handler.dispatchMessage(Handler.java:99) 05-26 00:17:45.403: E/AndroidRuntime(5279): at android.os.Looper.loop(Looper.java:137) 05-26 00:17:45.403: E/AndroidRuntime(5279): at android.app.ActivityThread.main(ActivityThread.java:4867) 05-26 00:17:45.403: E/AndroidRuntime(5279): at java.lang.reflect.Method.invokeNative(Native Method) 05-26 00:17:45.403: E/AndroidRuntime(5279): at java.lang.reflect.Method.invoke(Method.java:511) 05-26 00:17:45.403: E/AndroidRuntime(5279): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1007) 05-26 00:17:45.403: E/AndroidRuntime(5279): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:774) 05-26 00:17:45.403: E/AndroidRuntime(5279): at dalvik.system.NativeStart.main(Native Method) 05-26 00:17:45.403: E/AndroidRuntime(5279): Caused by: java.lang.NullPointerException 05-26 00:17:45.403: E/AndroidRuntime(5279): at android.content.ContextWrapper.getResources(ContextWrapper.java:81) 05-26 00:17:45.403: E/AndroidRuntime(5279): at android.view.View.<init>(View.java:3296) 05-26 00:17:45.403: E/AndroidRuntime(5279): at com.example.testscreen.MainActivity$screen.<init>(MainActivity.java:24) 05-26 00:17:45.403: E/AndroidRuntime(5279): at com.example.testscreen.MainActivity.<init>(MainActivity.java:12) 05-26 00:17:45.403: E/AndroidRuntime(5279): at java.lang.Class.newInstanceImpl(Native Method) 05-26 00:17:45.403: E/AndroidRuntime(5279): at java.lang.Class.newInstance(Class.java:1319) 05-26 00:17:45.403: E/AndroidRuntime(5279): at android.app.Instrumentation.newActivity(Instrumentation.java:1068) 05-26 00:17:45.403: E/AndroidRuntime(5279): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2007) 05-26 00:17:45.403: E/AndroidRuntime(5279): ... 11 more
EDIT : Bon, apparemment c'etait simplement ma déclaration de variable screen qui n'était pas faite au bon endroit (il fallait la mettre dans le OnCreate() !!
- Edité par BrokenDreamz 26 mai 2013 à 1:02:25
[Android] [Résolu] -Erreur force close - Canvas
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.