Long.getLong () fallisce, restituendo null alla string valida

Ho passato le ultime due ore a eseguire il debug di ciò che sembra estremamente improbabile. Ho spogliato il metodo di un'Andrica secondaria in modo esattamente questo:

public void onClick(View v) { String str = "25"; long my_long = Long.getLong(str); } // onClick (v) 

E sì, ho un crash con il good ol 'NullPointerException:

  • Inizio di avvio di Android Studio su Windows 8 64bit
  • Come modificare dynamicmente il layout XML di Android
  • Risorsa string di riferimento dal codice
  • Ridimensionare TextView non riduce la sua altezza su Android 3.1
  • Indirizzo di heap non valido e segnale fatale 11
  • Chiave da String in Java RSA
  • 09-11 02: 02: 50.444: ERRORE / AndroidRuntime (1588): Gestore incappucciato: thread che esce principale a causa dell'exception ineccepibile 09-11 02: 02: 50.464: ERRORE / AndroidRuntime (1588): java.lang.NullPointerException

    Sembra che (da altri test) Long.getLong (str) restituisca NULL, il che mi sta guidando. COSA SONO MISSI?

    Grazie in anticipo. Sono ok per stupidamente manca l'ovvio, ma la mia sanità è in linea.

  • Interruttore compatibile all'indietro
  • Android CursorLoader
  • Come ANDROID_ID su ARC (Chrome) differisce da Android?
  • Errore nel creare un giocatore per Android in Unity?
  • Come mostrare tutto il mondo e inserire marcatori su di esso?
  • Chiamata button di chiamataListere dell'attività dal frammento?
  • 5 Solutions collect form web for “Long.getLong () fallisce, restituendo null alla string valida”

    Manca il fatto che Long.getLong(String str) non dovrebbe analizzare una string a lungo, ma piuttosto restituire un valore lungo di una properties; di sistema rappresentata da quella string. Come altri hanno suggerito, ciò che in realtà è necessario è Long.parseLong(String str) .

    È ansible utilizzare Long.parseLong(String) invece di getLong(String) : risolverà il problema.

    Penso che utilizzi uso sbagliato Long.parseLong (str), quindi puoi get la risposta giusta.

    Long.parseLong (someString) approvato. Non dimenticare di catturare NumberFormatException se c'è una probabilità di string inarrestabile.

    Per capire questo, alcuni esempi:

     Long val= Long.getLong("32340"); 

    ritorna: null

     Long val = Long.getLong("32340", 3000); 

    ritorna: 3000

    Utilizzo di Long.parseLong () :

     Long val = Long.parseLong("32340"); 

    ritorna: 32340

    La documentazione descrive il metodo getLong () come:

    Restituisce il valore Long della properties; di sistema identificata da string.

    questo è il codice del metodo getLong () e solo get un valore di properties; definito da una string:

      public static Long getLong(String string) { if (string == null || string.length() == 0) { return null; } String prop = System.getProperty(string); if (prop == null) { return null; } try { return decode(prop); } catch (NumberFormatException ex) { return null; } } 

    Se si desidera analizzare una string a lungo, il modo migliore è utilizzare il metodo Long.parseLong () .

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.