Autore Topic: NullpointerException al caricamento  (Letto 1088 volte)

Offline emaborsa

  • Utente normale
  • ***
  • Post: 274
  • Java Developer
  • Respect: +33
    • Google+
    • emaborsa
    • Mostra profilo
    • www.emaborsa.com
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Linux 10 - Win8.1 - Android 4.1.2
NullpointerException al caricamento
« il: 20 Luglio 2012, 10:36:41 CEST »
0
Ho un problema di NullpointerException. Potrei mettere un sempice IF ELSE prima della chiamata....ma non mi piace.
Vi spiego:

Sto lavorando con una activity principale dove cambio view di visualizzazione...tra cui una mappa con vari suoi componenti. Funziona sempre, mai un problema. Anche se clicco il tasto HOME e rientro nell'app, nessun problema. Nemmeno se clicco il bottone per blocco tasi/ schermo.
Quando invece il telefono va "in standby" da solo (schermo nero per intenderci), e ritorno nell'applicazione, una volta che torno nella mappa, mi da un null pointerexception.
La mia domanda è la seguente:

Se il telefono va in stanndby come si comporta l'activity? onpause? onstop?
e se clicco il tasto HOME invece?
e da dove riprende una volta che ci torno?

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:NullpointerException al caricamento
« Risposta #1 il: 20 Luglio 2012, 10:44:39 CEST »
0
Se il telefono va in stanndby come si comporta l'activity? onpause? onstop?
e se clicco il tasto HOME invece?
e da dove riprende una volta che ci torno?


Sovrascrivi le varie callback, mettici dentro un Log.d e lo scoprirai ;)
Hint:


Offline emaborsa

  • Utente normale
  • ***
  • Post: 274
  • Java Developer
  • Respect: +33
    • Google+
    • emaborsa
    • Mostra profilo
    • www.emaborsa.com
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Linux 10 - Win8.1 - Android 4.1.2
Re:NullpointerException al caricamento
« Risposta #2 il: 20 Luglio 2012, 10:49:38 CEST »
0
Il grafico già lo ho a mente....è che non so esattamente QUANDO fa COSA....
Ok proverò con i log...anche se speravo in una soluzione più rapida.

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:NullpointerException al caricamento
« Risposta #3 il: 20 Luglio 2012, 11:29:42 CEST »
0
Il grafico già lo ho a mente....è che non so esattamente QUANDO fa COSA....
Ok proverò con i log...anche se speravo in una soluzione più rapida.

La questione del QUANDO fa COSA talvolta non è banale come si vorrebbe. Direi che vale veramente la pena fare un Log degli stati attraversati dall'activity e da cosa diventa NULL e perchè.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline emaborsa

  • Utente normale
  • ***
  • Post: 274
  • Java Developer
  • Respect: +33
    • Google+
    • emaborsa
    • Mostra profilo
    • www.emaborsa.com
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Linux 10 - Win8.1 - Android 4.1.2
Re:NullpointerException al caricamento
« Risposta #4 il: 20 Luglio 2012, 11:41:55 CEST »
0
La questione del QUANDO fa COSA talvolta non è banale come si vorrebbe. Direi che vale veramente la pena fare un Log degli stati attraversati dall'activity e da cosa diventa NULL e perchè.

Il COSA è null lo so, dal LogCat lo vedo. Ma non capisco perchè sia null e il resto no.
Comunque ora vedo.

Offline emaborsa

  • Utente normale
  • ***
  • Post: 274
  • Java Developer
  • Respect: +33
    • Google+
    • emaborsa
    • Mostra profilo
    • www.emaborsa.com
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Linux 10 - Win8.1 - Android 4.1.2
Re:NullpointerException al caricamento
« Risposta #5 il: 20 Luglio 2012, 15:19:12 CEST »
0
Porca miseria....messo i Log non mi crasha mai.
Sarò costretto a mettere un if else e vedere se l'app si comporta come deve.

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:NullpointerException al caricamento
« Risposta #6 il: 21 Luglio 2012, 08:43:52 CEST »
0
Porca miseria....messo i Log non mi crasha mai.
Sarò costretto a mettere un if else e vedere se l'app si comporta come deve.

Hai un'ultima possibilità  :D : togli i Log uno alla volta e vedi quando comincia a crashare.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline emaborsa

  • Utente normale
  • ***
  • Post: 274
  • Java Developer
  • Respect: +33
    • Google+
    • emaborsa
    • Mostra profilo
    • www.emaborsa.com
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Linux 10 - Win8.1 - Android 4.1.2
Re:NullpointerException al caricamento
« Risposta #7 il: 21 Luglio 2012, 18:27:51 CEST »
0
Hai un'ultima possibilità  :D : togli i Log uno alla volta e vedi quando comincia a crashare.

No, li lascio sperando che primo o poi crasha...in modo da vedere poi il problema nel gatto .

Offline emaborsa

  • Utente normale
  • ***
  • Post: 274
  • Java Developer
  • Respect: +33
    • Google+
    • emaborsa
    • Mostra profilo
    • www.emaborsa.com
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Linux 10 - Win8.1 - Android 4.1.2
Re:NullpointerException al caricamento
« Risposta #8 il: 23 Luglio 2012, 21:47:16 CEST »
0
Eccolo finalmente. Il problema nasce dal MyLocationOverlay quando chiamo getMyLocation():

Codice (Java): [Seleziona]
myLocationOverlay.getMyLocation()questo mi riporta un GeoPoint che è null e appena ci chiamo su un metodo, crack -> NullPointerException.

Com'è possibile?

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:NullpointerException al caricamento
« Risposta #9 il: 23 Luglio 2012, 22:03:43 CEST »
0
Eccolo finalmente. Il problema nasce dal MyLocationOverlay quando chiamo getMyLocation():

Codice (Java): [Seleziona]
myLocationOverlay.getMyLocation()questo mi riporta un GeoPoint che è null e appena ci chiamo su un metodo, crack -> NullPointerException.

Com'è possibile?
ema, come da documentazione, la location non è un metodo sincrono, ovvero non è che tu chiedi la posizione e ti viene data, tu puoi metterti "in ascolto" della posizione e quando la ricevi usarla. C'è un metodo (perdona l'imprecisione) getLastKnownLocation che ti da l'ultima location salvata, ma ovviamente se il cell è appena stato acceso è null anche quella.
Tu devi avviare il listener di posizione gps e poi agire di conseguenza
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 emaborsa

  • Utente normale
  • ***
  • Post: 274
  • Java Developer
  • Respect: +33
    • Google+
    • emaborsa
    • Mostra profilo
    • www.emaborsa.com
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Linux 10 - Win8.1 - Android 4.1.2
Re:NullpointerException al caricamento
« Risposta #10 il: 23 Luglio 2012, 23:15:47 CEST »
0
ho visto si che è synchronized... ma la cosa strana è che il null me lo da una volta su cento e SOLO quando da una seconda activity torno alla mia mappa. Al caricamento della mappa non me lo ha mai dato...
Conosco anche il metodo getLa ...potrei richiamare quello if (getMyLocation() == null)....

Codice (Java): [Seleziona]
// Define the criteria how to select the locatioin provider -> use
// default
Criteria criteria = new Criteria();
String provider = locationManager.getBestProvider(criteria, false);
Location location = locationManager.getLastKnownLocation(provider);
« Ultima modifica: 23 Luglio 2012, 23:17:58 CEST da emaborsa »