Ik moet wat research doen naar mobile games in java voor mijn stage, maar nu stuit ik op een raar probleem.
Ik heb de volgende MIDlet:
Nou start ik die heel leuk in de emulator (WTK 1.0.4), en dan krijg ik na het starten van mijn MIDlet deze error:
Ik snap er niets van
De code is vrij simpel. Het compiled prima, en ook preverify geeft verder geen problemen. Overigens, als ik preverify er niet overheen gooi dan krijg ik een error in mijn run () methode, dus hij veranderd wel wat.
Grappige is dat ie het zonder de if-statement in Test.TestCanvas.paint () gewoon prima doet. Nadat de if om de code heen was gezet werkte het niet meer (ik heb de code in de if-statement eruit gehaald, het maakte niet uit of daar nou wel of niet iets in stond)
Heeft iemand een idee wat er aan de hand is?
Ik heb de volgende MIDlet:
Java:
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
| import java.util.*; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class Test extends MIDlet implements Runnable { Display display; TestCanvas canvas; Thread thread; boolean running; public Test () { display = Display.getDisplay (this); canvas = new TestCanvas (); } public void startApp () { display.setCurrent (canvas); running = true; thread = new Thread (this); thread.start (); } public void pauseApp () { running = false; thread = null; } public void destroyApp (boolean pForce) { } public void run () { while (running) { canvas.repaint (); try { Thread.sleep (100); } catch (InterruptedException e) { } } } class TestCanvas extends Canvas { int counter = 0; public TestCanvas () { } public void paint (Graphics g) { if (++counter > 500) { } else { } } } } |
Nou start ik die heel leuk in de emulator (WTK 1.0.4), en dan krijg ik na het starten van mijn MIDlet deze error:
code:
1
2
3
4
5
6
7
8
9
10
11
| Execution completed successfully 3189 bytecodes executed 2 thread switches 319 classes in the system (including system classes) 239 dynamic objects allocated (11212 bytes) 2 garbage collections (4808 bytes collected) Total heap size 500000 bytes (currently 489500 bytes free) Error verifying method Test$TestCanvas paint(Ljavax/microedition/lcdui/Graphics;)V Approximate bytecode offset 14: Inconsistent or missing stackmap at target ALERT: Error verifying class Test$TestCanvas Press any key to continue . . . |
Ik snap er niets van
De code is vrij simpel. Het compiled prima, en ook preverify geeft verder geen problemen. Overigens, als ik preverify er niet overheen gooi dan krijg ik een error in mijn run () methode, dus hij veranderd wel wat.
Grappige is dat ie het zonder de if-statement in Test.TestCanvas.paint () gewoon prima doet. Nadat de if om de code heen was gezet werkte het niet meer (ik heb de code in de if-statement eruit gehaald, het maakte niet uit of daar nou wel of niet iets in stond)
Heeft iemand een idee wat er aan de hand is?
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.