Autore Topic: Fatal Exception Main con semplice ListView  (Letto 434 volte)

Offline tune

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung S2
  • Sistema operativo:
    Win 8
Fatal Exception Main con semplice ListView
« il: 28 Febbraio 2013, 18:06:17 CET »
0
Ciao a tutti, e ben trovati,
premetto che mi sto approcciando ad android da circa 1settimana, quindi capirete il mio livello anche se sto studiando a fondo.

Passiamo al problema:
praticamente in fase di avvio dell'emulatore, l'applicazione crasha con tanto di alert.
di seguito il logcat:

02-28 16:57:17.286: D/AndroidRuntime(440): Shutting down VM
02-28 16:57:17.286: W/dalvikvm(440): threadid=1: thread exiting with uncaught exception (group=0x40015560)
02-28 16:57:17.368: E/AndroidRuntime(440): FATAL EXCEPTION: main
02-28 16:57:17.368: E/AndroidRuntime(440): java.lang.NullPointerException
02-28 16:57:17.368: E/AndroidRuntime(440):    at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:353)
02-28 16:57:17.368: E/AndroidRuntime(440):    at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323)
02-28 16:57:17.368: E/AndroidRuntime(440):    at android.widget.AbsListView.obtainView(AbsListView.java:1430)
02-28 16:57:17.368: E/AndroidRuntime(440):    at android.widget.ListView.measureHeightOfChildren(ListView.java:1216)
02-28 16:57:17.368: E/AndroidRuntime(440):    at android.widget.ListView.onMeasure(ListView.java:1127)
02-28 16:57:17.368: E/AndroidRuntime(440):    at android.view.View.measure(View.java:8313)
02-28 16:57:17.368: E/AndroidRuntime(440):    at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:581)
02-28 16:57:17.368: E/AndroidRuntime(440):    at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:365)
02-28 16:57:17.368: E/AndroidRuntime(440):    at android.view.View.measure(View.java:8313)
02-28 16:57:17.368: E/AndroidRuntime(440):    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
02-28 16:57:17.368: E/AndroidRuntime(440):    at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
02-28 16:57:17.368: E/AndroidRuntime(440):    at android.view.View.measure(View.java:8313)
02-28 16:57:17.368: E/AndroidRuntime(440):    at android.widget.LinearLayout.measureVertical(LinearLayout.java:531)
02-28 16:57:17.368: E/AndroidRuntime(440):    at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
02-28 16:57:17.368: E/AndroidRuntime(440):    at android.view.View.measure(View.java:8313)
02-28 16:57:17.368: E/AndroidRuntime(440):    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
02-28 16:57:17.368: E/AndroidRuntime(440):    at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
02-28 16:57:17.368: E/AndroidRuntime(440):    at android.view.View.measure(View.java:8313)
02-28 16:57:17.368: E/AndroidRuntime(440):    at android.view.ViewRoot.performTraversals(ViewRoot.java:839)
02-28 16:57:17.368: E/AndroidRuntime(440):    at android.view.ViewRoot.handleMessage(ViewRoot.java:1859)
02-28 16:57:17.368: E/AndroidRuntime(440):    at android.os.Handler.dispatchMessage(Handler.java:99)
02-28 16:57:17.368: E/AndroidRuntime(440):    at android.os.Looper.loop(Looper.java:123)
02-28 16:57:17.368: E/AndroidRuntime(440):    at android.app.ActivityThread.main(ActivityThread.java:3683)
02-28 16:57:17.368: E/AndroidRuntime(440):    at java.lang.reflect.Method.invokeNative(Native Method)
02-28 16:57:17.368: E/AndroidRuntime(440):    at java.lang.reflect.Method.invoke(Method.java:507)
02-28 16:57:17.368: E/AndroidRuntime(440):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
02-28 16:57:17.368: E/AndroidRuntime(440):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
02-28 16:57:17.368: E/AndroidRuntime(440):    at dalvik.system.NativeStart.main(Native Method)


ecco la mia onCreate in activityMain: nb. se tolgo il codice da "pippo" a "pluto" ovviamente l'app parte
Codice (Java): [Seleziona]
        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
               
                //*** PIPPO
               
        ListView listView = (ListView)findViewById(R.id.lista);
        String [] array = {"Antonio","Giovanni","Michele","Giuseppe", "Leonardo", "Alessandro"};
        ArrayAdapter<String> arrayAdapter =
                new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, R.id.lista, array);
        listView.setAdapter(arrayAdapter);
       
        //**** PLUTO
        }

Questo l'xml relativo:
Codice (XML): [Seleziona]
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:paddingBottom="@dimen/activity_vertical_margin"
   android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   tools:context=".MainActivity" >

    <Button
       android:id="@+id/add_nota"
       android:onClick="add_nota"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentLeft="true"
       android:layout_alignParentRight="true"
       android:layout_alignParentTop="true"
       android:text="@string/add_nota_label" />

    <ListView
       android:id="@+id/lista"
       android:layout_width="wrap_content"
       android:layout_height="match_parent"
       android:layout_below="@id/add_nota" >

    </ListView>

</RelativeLayout>

dov'è che prend il nullPointer?
Grazie in anticipo!

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Fatal Exception Main con semplice ListView
« Risposta #1 il: 28 Febbraio 2013, 18:22:35 CET »
0
Ciao e benvenuto a te,
credo che l'errore sia dovuto a R.id.lista.
In quell'argomento dovresti passare l'id della TextView alla quale l'ArrayAdapter deve bindare la stringa.
Siccome android.R.layout.simple_list_item_1 non contiene di certo R.id.lista ti da quel problema.
Sostituento R.id.lista con android.R.id.text1 (che è l'id della textview che c'è dentro android.R.layout.simple_list_item_1) dovrebbe andare.

Ti consiglio inoltre di sostiuire getApplicationContext() con NomeActivity.this

Offline tune

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung S2
  • Sistema operativo:
    Win 8
Re:Fatal Exception Main con semplice ListView
« Risposta #2 il: 01 Marzo 2013, 09:30:17 CET »
0
Ciao, e grazie della risposta.
Infatti ora parte!
...una svista da vero pivello.

comunque Grazie, volevo "ringraziarti" ufficialmente ma non trovo il pulsante.

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
R: Fatal Exception Main con semplice ListView
« Risposta #3 il: 01 Marzo 2013, 09:49:04 CET »
0
Credo che siamo incappati tutti almeno una volta in un errore del genere :-)

Inviato dal mio Galaxy Nexus con Tapatalk 2