Ja wiem do czego służy JDK a do czego JRE ale komunikat jest bezlitosny:
http://jo.galu.info/test/smtk.jpg
Ostatecznie mam jednak możliwość testowania, chociaż dosyć kłopotliwą (VMWare), ewentualnie pozostaje laptop.
Problemy namierzyłem w 5 minut, nie analizowałem tego jeszcze ale jeśli jesteś zainterersowany informacjami to proszę:
1) Jakiekolwiek odwołania do mojej klasy obsługującej RMS (zapis i odczyt "sejwów") - klops. Nie wykluczam własnego błędu ale do tej pory testowałem grę na kilkunastu telefonach różnych producentów i nie było problemu. Może problem emulatora, jest komunikat o jakichś zabezpieczeniach.
2) Próba odtworzenia muzyki, dźwięku - wyjątek. Nie zagłębiałem się tylko wyłączyłem.
3) Na pewnym etapie tworzenia gry postanowiłem zmienić tryb wyświetlania na panoramiczny (czyli de facto gra na obróconym o 90 lub 270st ekraniku), rezultatem czego jest takie coś:
private Graphics g;
private Graphics saved;
private Image offscreen = null;
...
saved = g;
if( offscreen != null ){
g = offscreen.getGraphics();
}
if( g != saved ){
saved.drawRegion( offscreen, 0, 0, SCREEN_X, SCREEN_Y, Sprite.TRANS_ROT90, 0, 0, 0);
}
Czyli kopiowanie zawartości ekranu do pamięci (przy 24bitowej głębi kolorów może być problem ale do tej pory działało na każdym telefonie oprócz jednej Nokii na której wg jej właściciela połowa gier się nie uruchamia).
Pod emu Siemensa drawRegion() zwraca NullPointerException, nie sugeruje to więc jednak problemów z pamięcią. Zamiana Sprite.TRANS_ROT90 na 0 (brak transformacji/obrotu) pomaga.
Ostatecznie po wywaleniu wszystkich problematycznych fragmentów:
http://jo.galu.info/test/proof.png
Przy czym nie wiem czy w najbliższych dniach znajdę czas, żeby nad tym przysiąść.
Pozdrawiam.
Ostatnia modyfikacja: 26.12.07 23:06