Autore Topic: Crash applicazione quando cambio l'orientation da portrait a landscape  (Letto 784 volte)

Offline teopozzi

  • Utente junior
  • **
  • Post: 67
  • Respect: +1
    • Mostra profilo
Salve ho un problema, praticamente seguende vari link mi hanno consigliato di creare una cartella layout-land per passare da portrait a landscape, quindi l'ho creata ho modificato tutti i miei file xml per visualizzare correttamente il layout in modalità landscape, soltanto che dopo che carica l'activity principale ( praticamente un'immagine) e passa alla seconda activity (visualizza una mapView) l'applicazione crasha, mentre se lascio tutto in modalità portrait tutto funziona correttamente. Non so più come risolvere questo problema...!!!! Come posso fare???? grazie in anticipo per le risposte

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:Crash applicazione quando cambio l'orientation da portrait a landscape
« Risposta #1 il: 14 Aprile 2011, 10:58:28 CEST »
0
Allora, prima di tutto dovresti andare a vedere nel LogCat le cause del crash. Nel caso peggiore ti darà un'indicazione sul genere di errore che causa il crash, nel caso migliore ti dirà esattamente la ragione.

Per precorrere i tempi, anticipo un'ipotesi: una delle possibili cause di crash è l'assenza di qualche widget (button, textview o altro) nel layout della seconda activity in modalità landscape, oppure la presenza ma con ID diverso; al che quando va a indirizzare tale risorsa, non trovandola esplode tutto.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline teopozzi

  • Utente junior
  • **
  • Post: 67
  • Respect: +1
    • Mostra profilo
Re:Crash applicazione quando cambio l'orientation da portrait a landscape
« Risposta #2 il: 14 Aprile 2011, 11:33:47 CEST »
0
Questo è il logcat di quando crasha:

Codice: [Seleziona]
04-14 11:29:05.273: ERROR/AndroidRuntime(3855): FATAL EXCEPTION: main
04-14 11:29:05.273: ERROR/AndroidRuntime(3855): java.lang.RuntimeException: Unable to start activity ComponentInfo{it.android.ILoveRimini/it.android.ILoveRimini.ILoveRiminiActivity}: java.lang.NullPointerException
04-14 11:29:05.273: ERROR/AndroidRuntime(3855):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2781)
04-14 11:29:05.273: ERROR/AndroidRuntime(3855):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2797)
04-14 11:29:05.273: ERROR/AndroidRuntime(3855):     at android.app.ActivityThread.access$2300(ActivityThread.java:135)
04-14 11:29:05.273: ERROR/AndroidRuntime(3855):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2132)
04-14 11:29:05.273: ERROR/AndroidRuntime(3855):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-14 11:29:05.273: ERROR/AndroidRuntime(3855):     at android.os.Looper.loop(Looper.java:143)
04-14 11:29:05.273: ERROR/AndroidRuntime(3855):     at android.app.ActivityThread.main(ActivityThread.java:4914)
04-14 11:29:05.273: ERROR/AndroidRuntime(3855):     at java.lang.reflect.Method.invokeNative(Native Method)
04-14 11:29:05.273: ERROR/AndroidRuntime(3855):     at java.lang.reflect.Method.invoke(Method.java:521)
04-14 11:29:05.273: ERROR/AndroidRuntime(3855):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
04-14 11:29:05.273: ERROR/AndroidRuntime(3855):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
04-14 11:29:05.273: ERROR/AndroidRuntime(3855):     at dalvik.system.NativeStart.main(Native Method)
04-14 11:29:05.273: ERROR/AndroidRuntime(3855): Caused by: java.lang.NullPointerException
04-14 11:29:05.273: ERROR/AndroidRuntime(3855):     at it.android.ILoveRimini.ILoveRiminiActivity.onCreate(ILoveRiminiActivity.java:81)
04-14 11:29:05.273: ERROR/AndroidRuntime(3855):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1065)
04-14 11:29:05.273: ERROR/AndroidRuntime(3855):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2745)
04-14 11:29:05.273: ERROR/AndroidRuntime(3855):     ... 11 more


adesso ti posto anche il layout di main.xml (portrait):
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_height="match_parent" android:layout_width="match_parent">
        <com.google.android.maps.MapView
                                android:layout_height="fill_parent"
                                android:layout_width="fill_parent"
                                android:id="@+id/mv"
                                android:layout_weight="1"
                                android:clickable="true"
                                android:apiKey="----------"
                                android:layout_marginTop="0dip"/>
                                       
        <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical">
                <LinearLayout android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:id="@+id/linearLayout1"
                        android:minHeight="64dip" android:background="#FFFFFF">
                <ImageButton android:layout_height="wrap_content"
                        android:id="@+id/button2" android:src="@drawable/people"
                        android:layout_width="50dip" android:layout_marginTop="10dip"/>
                <ImageButton android:id="@+id/newEvent" android:layout_height="wrap_content" android:layout_width="50dip" android:layout_marginTop="10dip" android:src="@drawable/note" android:layout_marginLeft="2dip"></ImageButton>
                <ImageView android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:id="@+id/imageView1"
                        android:minHeight="58dip"
                        android:layout_marginTop="3dip"
                        android:src="@drawable/header2" android:layout_marginLeft="25dip"/>
                <ImageButton android:id="@+id/searchButton" android:layout_height="wrap_content" android:layout_width="50dip" android:layout_marginTop="10dip" android:src="@drawable/search" android:layout_marginLeft="65dip"></ImageButton>
                </LinearLayout>
                <LinearLayout android:id="@+id/linearLayout2" android:layout_width="fill_parent" android:background="#FF1493" android:layout_height="30dip">
                        <Button android:id="@+id/button10" android:textColor="#000000" android:layout_height="35dip" android:layout_width="35dip" android:layout_marginTop="0dip" android:text="&lt;" android:background="#FF1493" android:layout_marginLeft="5dip"></Button>
                        <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#000000" android:layout_marginTop="0dip" android:layout_marginLeft="5dip" android:text="QUESTA SETTIMANA / THIS WEEK"></TextView>
                        <Button android:id="@+id/button4" android:text="&gt;" android:textColor="#000000" android:layout_height="35dip" android:layout_width="35dip" android:layout_marginTop="0dip" android:background="#FF1493" android:layout_marginLeft="10dip"></Button>
                </LinearLayout>
                <LinearLayout android:id="@+id/linearLayout3" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginRight="-6dip" android:gravity="right">
                        <ImageButton android:layout_width="50dip" android:layout_height="50dip" android:id="@+id/button5" android:layout_marginRight="-52dip" android:layout_marginTop="100dip" android:src="@drawable/list"/>
                        <ImageButton android:layout_width="50dip" android:layout_height="50dip" android:id="@+id/button6" android:layout_marginTop="150dip" android:layout_marginRight="5dip" android:baselineAlignBottom="false" android:src="@drawable/place"/>
                </LinearLayout>
        </LinearLayout>
</merge>       

questo è invece il layout main.xml (landscape):
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_height="match_parent" android:layout_width="match_parent">
        <com.google.android.maps.MapView
                                android:layout_height="fill_parent"
                                android:layout_width="fill_parent"
                                android:id="@+id/mv"
                                android:layout_weight="1"
                                android:clickable="true"
                                android:apiKey="-------"
                                android:layout_marginTop="0dip"/>
                                       
        <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical">
                <LinearLayout android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:id="@+id/linearLayout1"
                        android:minHeight="64dip" android:background="#FFFFFF">
                <ImageButton android:layout_height="wrap_content"
                        android:id="@+id/button2" android:src="@drawable/people"
                        android:layout_width="50dip" android:layout_marginTop="10dip"/>
                <ImageButton android:id="@+id/newEvent" android:layout_height="wrap_content" android:layout_width="50dip" android:layout_marginTop="10dip" android:src="@drawable/note" android:layout_marginLeft="2dip"></ImageButton>
                <ImageView android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:id="@+id/imageView1"
                        android:minHeight="58dip"
                        android:layout_marginTop="3dip"
                        android:src="@drawable/header2" android:layout_marginLeft="85dip"/>
                <ImageButton android:id="@+id/searchButton" android:layout_height="wrap_content" android:layout_width="50dip" android:layout_marginTop="10dip" android:src="@drawable/search" android:layout_marginLeft="105dip"></ImageButton>
                </LinearLayout>
                <LinearLayout android:layout_width="fill_parent"
                android:id="@+id/linearLayout4"
                android:layout_gravity="right" android:minHeight="35dip" android:layout_height="30dip" android:background="#FF1493">
                        <Button android:id="@+id/button1" android:text="&lt;" android:layout_width="15dip" android:layout_height="match_parent" android:background="#FF1493" android:layout_marginLeft="5dip"></Button>
               
                <TextView android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:id="@+id/textView2"
                        android:textColor="#000000"
                        android:textSize="14sp"
                        android:width="250dip" android:layout_marginTop="-2dip" android:text="QUESTA SETTIMANA / THIS WEEK" android:layout_marginLeft="75dip"/>
                       
                <Button android:layout_width="fill_parent"
                        android:layout_height="match_parent"
                        android:id="@+id/button7"
                        android:text=">" android:background="#FF1493" android:layout_marginLeft="55dip"/>
        </LinearLayout>
                <LinearLayout android:id="@+id/linearLayout3" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginRight="-6dip" android:gravity="right">
                        <ImageButton android:layout_width="50dip" android:layout_height="50dip" android:id="@+id/button5" android:layout_marginRight="-52dip" android:layout_marginTop="80dip" android:src="@drawable/list"/>
                        <ImageButton android:layout_width="50dip" android:layout_height="50dip" android:id="@+id/button6" android:layout_marginTop="150dip" android:layout_marginRight="5dip" android:baselineAlignBottom="false" android:src="@drawable/place"/>
                </LinearLayout>
        </LinearLayout>
</merge>       

apiKey della mappa sono giuste le ho tolte solo adesso.
« Ultima modifica: 14 Aprile 2011, 11:39:15 CEST da Nicola_D, Reason: IL codice per favore mettilo negli appositi TAG! »

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Crash applicazione quando cambio l'orientation da portrait a landscape
« Risposta #3 il: 14 Aprile 2011, 12:46:17 CEST »
0
Devi leggere attentamente il logcat perche', come in questo caso, ti segnala dov'e' l'inghippo:

Codice: [Seleziona]
04-14 11:29:05.273: ERROR/AndroidRuntime(3855): Caused by: java.lang.NullPointerException
04-14 11:29:05.273: ERROR/AndroidRuntime(3855):     at it.android.ILoveRimini.ILoveRiminiActivity.onCreate(ILoveRiminiActivity.java:81)

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:Crash applicazione quando cambio l'orientation da portrait a landscape
« Risposta #4 il: 14 Aprile 2011, 15:27:03 CEST »
0
Per precorrere i tempi, anticipo un'ipotesi: una delle possibili cause di crash è l'assenza di qualche widget (button, textview o altro) nel layout della seconda activity in modalità landscape, oppure la presenza ma con ID diverso; al che quando va a indirizzare tale risorsa, non trovandola esplode tutto.

Mi auto-quoto e rilancio: nei due layout usi elementi (Button, TextView) con ID diversi, quindi è molto probabile che nella OnCreate tu faccia riferimento ad elementi che non esistono nel layout landscape (button10, button4, textview1).

Se posti anche il JAVA della OnCreate lo vediamo facilmente.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline teopozzi

  • Utente junior
  • **
  • Post: 67
  • Respect: +1
    • Mostra profilo
Re:Crash applicazione quando cambio l'orientation da portrait a landscape
« Risposta #5 il: 14 Aprile 2011, 16:23:56 CEST »
0
ho risolto mi scusa per non aver letto bene il logcat era facilmente intuibile l'errore....sorry...!!!! Grazie mille...!!!!