Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [Android Studio] Errore java.lang.NullPointerException

    Salve a tutti sono nuovo del Forum, ho postato qui questa discussione non sapendo di preciso dove inserirla, spero vada bene.
    Sto lavorando ad un progetto con Android Studio e ho riscontrato un problema riguardante java, presente anche al di fuori del software Android Studio.
    Premetto di essere un novizio nella programmazione Android, perciò non conosco benissimo l'ambiente di lavoro e questo è il primo progetto "serio" a cui sto lavorando.

    Lo scopo del progetto sarebbe quello di visualizzare sull'applicazione i dati provenienti da un database già inserito all'interno del web server, tramite uno script PHP che ho già creato il quale crea un JSON della tabella interessata. In seguito l'applicazione Android si connette a questo script, prende ed elabora il JSON e lo riporta tramite una ListView sul display del telefono. Lo script PHP funziona e mi fa visualizzare sul browser il JSON.

    Il problema che riscontro mi fa crashare l'app praticamente all'avvio; si tratta di un errore che nel debugger mi viene segnalato come "FATAL EXCEPTION: main java.lang.NullPointerException"

    Se potesse essere utile inserisco ciò che viene visualizzato nel debugger, di cui premetto non capisco un granché

    Debug:
    codice:
    02-03 09:47:04.091 5118-5118/com.example.andrea.listviewjson E/AndroidRuntime: FATAL EXCEPTION: main                                                                               java.lang.NullPointerException
                                                                                       at com.example.andrea.listviewjson.GetAllAllarmiListViewAdapter.getCount(GetAllAllarmiListViewAdapter.java:34)
                                                                                       at android.widget.ListView.setAdapter(ListView.java:460)
                                                                                       at com.example.andrea.listviewjson.MainActivity.setListAdapter(MainActivity.java:27)
                                                                                       at com.example.andrea.listviewjson.MainActivity$GetAllAllarmiTask.onPostExecute(MainActivity.java:39)
                                                                                       at com.example.andrea.listviewjson.MainActivity$GetAllAllarmiTask.onPostExecute(MainActivity.java:29)
                                                                                       at android.os.AsyncTask.finish(AsyncTask.java:602)
                                                                                       at android.os.AsyncTask.access$600(AsyncTask.java:156)
                                                                                       at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:615)
                                                                                       at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                       at android.os.Looper.loop(Looper.java:137)
                                                                                       at android.app.ActivityThread.main(ActivityThread.java:4340)
                                                                                       at java.lang.reflect.Method.invokeNative(Native Method)
                                                                                       at java.lang.reflect.Method.invoke(Method.java:511)
                                                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
                                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
                                                                                       at dalvik.system.NativeStart.main(Native Method)
    02-03 09:47:06.472 5118-5118/? I/Process: Sending signal. PID: 5118 SIG: 9
    Ho anche provato ad utilizzare l'indirizzo dell'emulatore che fa riferimento al localhost (10.0.2.2) ma mi da lo stesso errore, in ogni caso vorrei capire quale sia l'indirizzo corretto da utilizzare. Come emulatore utilizzo un Galaxy_Nexus_API_14 con Android 4.0 (L'applicazione è stata creata per poter girare con Android 4.0 o superiore).

    Nel caso servissero altri dettagli basta chiediate e ve li fornirò appena possibile, se riesco a capire di cosa parlate chiaramente, data la mia ignoranza
    Avevo provato ad inserire anche i file .xml e .java qui sul forum, ma risultavano troppo lunghi anche sotto spoiler, nel caso servissero comunque proverò a reinserirli, magari sotto forma di screen.

    Grazie ancora e scusate nel caso non abbia rispettato qualche regola del Forum, ma sono nuovo anche sotto questo aspetto.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Sposto in Java.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Quello che hai postato si chiama StackTrace ed è importantissimo capirlo.
    Innanzitutto l'eccezione: NullPointerException è una delle più comuni. Significa che da qualche parte stai cercando di usare un oggetto che non è stato creato o un riferimento ad un oggetto che non è stato assegnato.

    Poi si guarda lo StackTrace partendo dall'alto verso il basso fino ad arrivare alla prima riga riguardante il codice che tu hai scritto. E ci trovi questo:

    codice:
    at com.example.andrea.listviewjson.GetAllAllarmiListViewAdapter.getCount(GetAllAllarmiListViewAdapter.java:34)

    Questo significa che l'eccezione si è sviluppata alla riga 34 del file GetAllAllarmiListViewAdapter.java [vedi tra parentesi tonde la scritta GetAllAllarmiListViewAdapter.java:34].

    Quindi, quello che devi fare è analizzare la riga 34 del tuo file GetAllAllarmiListViewAdapter.java e controllare qual è l'oggetto che usi in quella riga che è nullo.

    Per poterti aiutare maggiornmente dovremmo vedere il codice del file MainActivity.java e del file GetAllAllarmiListViewAdapter.java


    Ciao.
    Ultima modifica di LeleFT; 03-02-2016 a 13:51
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it L'avatar di Misterxxx
    Registrato dal
    Oct 2003
    Messaggi
    3,700
    Nel listato sotto all'errore riportato dovresti avere anche un link che punta alla riga che genera l'errore stesso.
    Come scrive LeleFT il NullPointerException è un errore molto comune e generalmente facilmente correggibile.
    Io ne ho viste cose che voi umani non potreste immaginare. Navi da combattimento in fiamme al largo dei bastioni di Orione e ho visto i raggi B, balenare nel buio vicino le porte di Tannhäuser. E tutti quei momenti ... andranno ... perduti nel tempo, come lacrime nella pioggia. È tempo di morire. (Roy Batty).

  5. #5
    Grazie degli utili suggerimenti, sono riuscito a risolvere, penso che il problema derivasse dal fatto che i dati all'interno della tabella da cui veniva creato il JSON erano una cosa come 14000 e probabilmente l'app andava in overflow. Non so se possa effettivamente essere stato questo, sta di fatto che eliminando molti record e tenendone una decina l'app funziona correttamente. Grazie ancora dei consigli e posso considerare la discussione RISOLTA

  6. #6
    Utente di HTML.it L'avatar di Misterxxx
    Registrato dal
    Oct 2003
    Messaggi
    3,700
    OT se hai 14000 record da visualizzare la ListView non è adatta, considera piuttosto la RecyclerView
    Io ne ho viste cose che voi umani non potreste immaginare. Navi da combattimento in fiamme al largo dei bastioni di Orione e ho visto i raggi B, balenare nel buio vicino le porte di Tannhäuser. E tutti quei momenti ... andranno ... perduti nel tempo, come lacrime nella pioggia. È tempo di morire. (Roy Batty).

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.