Autore Topic: Trovare la riga di errore in un try finally code  (Letto 528 volte)

Offline Giacomo79

  • Utente junior
  • **
  • Post: 123
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Play Store ID:
    Big and Fish
  • Sistema operativo:
    Android 2.3
Trovare la riga di errore in un try finally code
« il: 09 Aprile 2014, 18:44:36 CEST »
0
Salve a tutti,
utilizzo il codice che si trova facilmente in rete per gestire il loop di un game, ma ho un problema all'uscita dell'applicazione.
Il codice è questo:
Codice (Java): [Seleziona]
while (running) {
        canvas = null;
        // try locking the canvas for exclusive pixel editing
        // in the surface
        try {
                canvas = this.surfaceHolder.lockCanvas();
                synchronized (surfaceHolder) {
                        beginTime = System.currentTimeMillis();
                        framesSkipped = 0;      // resetting the frames skipped
                        // update game state
                        this.gamePanel.update();
                        // render state to the screen
                        // draws the canvas on the panel
                        this.gamePanel.render(canvas);                         
                        // calculate how long did the cycle take
                        timeDiff = System.currentTimeMillis() - beginTime;
                        // calculate sleep time
                        sleepTime = (int)(Util.FRAME_PERIOD - timeDiff);
                        if (sleepTime > 0) {
                                // if sleepTime > 0 we're OK
                                try {
                                        // send the thread to sleep for a short period
                                        // very useful for battery saving
                                        Thread.sleep(sleepTime);       
                                } catch (InterruptedException e) {}
                        }

                        while (sleepTime < 0 && framesSkipped < Util.MAX_FRAME_SKIPS) {
                                // we need to catch up
                                this.gamePanel.update(); // update without rendering
                                sleepTime += Util.FRAME_PERIOD; // add frame period to check if in next frame
                                framesSkipped++;
                        }
                }
        } finally {
                // in case of an exception the surface is not left in
                // an inconsistent state
                if (canvas != null) {
                        surfaceHolder.unlockCanvasAndPost(canvas);
                }
        }
}
Quando esco dall'applicazione mi segnala un errore di valore nullo andando nel finally, ma non riesco a capire cosa ha causato l'errore. C'è un modo di scoprirlo con Eclipse?

Grazie

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Trovare la riga di errore in un try finally code
« Risposta #1 il: 09 Aprile 2014, 18:55:12 CEST »
0
Hai il LogCat dell'errore?
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Giacomo79

  • Utente junior
  • **
  • Post: 123
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Play Store ID:
    Big and Fish
  • Sistema operativo:
    Android 2.3
Re:Trovare la riga di errore in un try finally code
« Risposta #2 il: 09 Aprile 2014, 18:57:30 CEST »
0
Hai il LogCat dell'errore?
Sapessi come trovarlo....:(

Post unito: 09 Aprile 2014, 19:06:12 CEST
Visto il LogCat, e non ci sono errori.
L'ultimo messaggio è questo:

04-09 13:05:21.545: D/MainGamePanel(1939): Surface is being destroyed
« Ultima modifica: 09 Aprile 2014, 19:06:12 CEST da Giacomo79, Reason: Merged DoublePost »

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Trovare la riga di errore in un try finally code
« Risposta #3 il: 09 Aprile 2014, 19:07:01 CEST »
0
Visto il LogCat, e non ci sono errori.

Se in tutto il LogCat non ci sono errori... non hai errori.  :D
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Giacomo79

  • Utente junior
  • **
  • Post: 123
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Play Store ID:
    Big and Fish
  • Sistema operativo:
    Android 2.3
Re:Trovare la riga di errore in un try finally code
« Risposta #4 il: 09 Aprile 2014, 19:10:13 CEST »
0
Se in tutto il LogCat non ci sono errori... non hai errori.  :D
Deduzione logica corretta ... :)

Solo che l'applicazione mi crasha.

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Trovare la riga di errore in un try finally code
« Risposta #5 il: 09 Aprile 2014, 19:50:20 CEST »
0
se ti crasha, nel logcat filtrando solo i log di level error DEVI vedere qualcosa per forza!
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Trovare la riga di errore in un try finally code
« Risposta #6 il: 09 Aprile 2014, 19:56:36 CEST »
0
Cercare guardare meglio nel LogCat. E per aiutarti, predisponi l'app nel punto in cui dovrebbe crashare, poi pulisci tutto il LogCat e quindi riproduci il crash. A quel punto dovrebbe essere più semplice isolare le righe di ERROR.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Giacomo79

  • Utente junior
  • **
  • Post: 123
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Play Store ID:
    Big and Fish
  • Sistema operativo:
    Android 2.3
Re:Trovare la riga di errore in un try finally code
« Risposta #7 il: 09 Aprile 2014, 20:32:34 CEST »
0
Cercare guardare meglio nel LogCat. E per aiutarti, predisponi l'app nel punto in cui dovrebbe crashare, poi pulisci tutto il LogCat e quindi riproduci il crash. A quel punto dovrebbe essere più semplice isolare le righe di ERROR.
Perfetto, grazie per i consigli, a te e Nicola_D.
Filtrando i messaggio forse ho risolto. Faccio ulteriori test.