# Canvas onDraw() Variablen muss in der Methode initialisiert werden



## Zidinjo (23. Okt 2015)

Hallo meine Freunde,

ich bin hier gleich richtig am austicken. Mein Problem ist sicherlich recht simple. Ich habe eine Klass die nennt sich GameView. Dort erstelle ich ein Objekt in der onDraw() Methode von der Klasse GameObject. Dies ist ja eigentlich kompklett falsch programmiert aber sonst funktiert das Programm nicht. Wenn ich die Objekterstellung auslagere z.b in eine Methode wie z.b initGame() dann meckert er, dass kein Objekt erstellt wurde. Ich muss alle Objekte in der onDraw() Methode erstellen. Kann mir jemand helfen ?  ich bin am Ende meines Wissens. Ich habe eine Klassenvariable mit dem KlassenTyp versehen und dann auf die Referenz(Den Namen) ein Objekt erstellt. Immer wenn ich dies NICHT in der onDraw() Methode mache, dann meckert er. Null Pointer exception.

Code :

XML CODE:
http://pastebin.com/ptcKq52X

KlassenCode GameActivity
http://pastebin.com/ibixj2xS

KlassenCode GameView
http://pastebin.com/c2xGeqLU

KlassenCode GameObject:
http://pastebin.com/0zj1phmL

Nur so funktiert das.

Mfg


----------



## buggy84 (27. Okt 2015)

Und da sind wir wieder beim Thema Methodenaufruf im Konstruktor. Bad Practice hin oder her, wenn Du 
	
	
	
	





```
ball.setSprite(R.drawable.menu_background)
```
 auf ein nichtexitentes Object anwendest, dann haut man Dir nunmal einen Nullpointer um die Ohren.

Du sagst

```
private GameObject ball
```
, damit ist aber noch lange kein Object erstellt. Damit hast Du irgendwas gemacht, und wenn wir es der Einfachheit halber "Speicher reservieren" nennen, dann ist das schon viel.

Aber "ball" bleibt NULL. Vielleicht hilft Dir das weiter.


----------

