Autore Topic: Cambiando l'ordine del Layout l'app crasha  (Letto 431 volte)

Offline xdoppiadx

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Fit
  • Sistema operativo:
    Windows 7
Cambiando l'ordine del Layout l'app crasha
« il: 19 Febbraio 2015, 18:20:09 CET »
0
Salve a tutti,
ho da poco inserito un banner pubblicitario nella mia app.
Il banner è messo all'interno di un layout (che ho chiamato AdLayout) in coda a tutti gli altri, e tutto va bene.
Siccome vicino ci sono dei button cliccabili dall'utente, vorrei evitare problemi e spostare il layout del banner in testa, in modo da non dare fastidio all'utente, ma se lo sposto l'app non và più.

Posto tutto l'occorrente:

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:layout_gravity="right"
   tools:context=".MainActivity" >

    <LinearLayout
       android:id="@+id/MainLayout"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentBottom="true"
       android:layout_alignParentLeft="true"
       android:layout_alignParentRight="true"
       android:layout_alignParentTop="true"
       android:background="@color/verdino"
       android:gravity="center|fill"
       android:orientation="vertical"
       android:weightSum="100" >

        <LinearLayout
           android:id="@+id/TopLayout"
           android:layout_width="match_parent"
           android:layout_height="0dp"
           android:layout_weight="38"
           android:gravity="left"
           android:orientation="vertical"
           android:weightSum="100" >

            <LinearLayout
               android:layout_width="match_parent"
               android:layout_height="wrap_content"
               android:weightSum="100"
               android:gravity="center" >

                <LinearLayout
                   android:id="@+id/LinearLayoutLeft"
                   android:layout_width="0dp"
                   android:layout_height="fill_parent"
                   android:layout_gravity="center"
                   android:layout_weight="35"
                   android:background="@drawable/sfondino3"
                   android:gravity="center"
                   android:weightSum="100" >

                    <LinearLayout
                       android:layout_width="wrap_content"
                       android:layout_height="wrap_content"
                       android:gravity="left"
                       android:includeFontPadding="false"
                       android:orientation="vertical" >

                        <TextView
                           android:id="@+id/TVFive"
                           android:layout_width="wrap_content"
                           android:layout_height="wrap_content"
                           android:includeFontPadding="false"
                           android:text="FIVE OF A KIND"
                           android:textSize="@dimen/vinciteSTD"
                           android:textStyle="bold" />

                        <TextView
                           android:id="@+id/TVRoyal"
                           android:layout_width="wrap_content"
                           android:layout_height="wrap_content"
                           android:includeFontPadding="false"
                           android:text="ROYAL FLUSH"
                           android:textSize="@dimen/vinciteSTD" />

                        <TextView
                           android:id="@+id/TVStraightFlush"
                           android:layout_width="wrap_content"
                           android:layout_height="wrap_content"
                           android:includeFontPadding="false"
                           android:text="STRAIGHT FLUSH"
                           android:textSize="@dimen/vinciteSTD" />

                        <TextView
                           android:id="@+id/TVPoker"
                           android:layout_width="wrap_content"
                           android:layout_height="wrap_content"
                           android:includeFontPadding="false"
                           android:text="4 OF A KIND"
                           android:textSize="@dimen/vinciteSTD" />

                        <TextView
                           android:id="@+id/TVFull"
                           android:layout_width="wrap_content"
                           android:layout_height="wrap_content"
                           android:includeFontPadding="false"
                           android:text="FULL HOUSE"
                           android:textSize="@dimen/vinciteSTD" />

                        <TextView
                           android:id="@+id/TVFlush"
                           android:layout_width="wrap_content"
                           android:layout_height="wrap_content"
                           android:includeFontPadding="false"
                           android:text="FLUSH"
                           android:textSize="@dimen/vinciteSTD" />

                        <TextView
                           android:id="@+id/TVStraight"
                           android:layout_width="wrap_content"
                           android:layout_height="wrap_content"
                           android:includeFontPadding="false"
                           android:text="STRAIGHT"
                           android:textSize="@dimen/vinciteSTD" />

                        <TextView
                           android:id="@+id/TVTris"
                           android:layout_width="wrap_content"
                           android:layout_height="wrap_content"
                           android:includeFontPadding="false"
                           android:text="3 OF A KIND"
                           android:textSize="@dimen/vinciteSTD" />

                        <TextView
                           android:id="@+id/TV2Pairs"
                           android:layout_width="wrap_content"
                           android:layout_height="wrap_content"
                           android:includeFontPadding="false"
                           android:text="2 PAIRS"
                           android:textSize="@dimen/vinciteSTD" />

                        <TextView
                           android:id="@+id/TVCoppia"
                           android:layout_width="wrap_content"
                           android:layout_height="wrap_content"
                           android:includeFontPadding="false"
                           android:text="HIGH PAIR"
                           android:textSize="@dimen/vinciteSTD" />

                    </LinearLayout>

                    <LinearLayout
                       android:layout_width="28dp"
                       android:layout_height="wrap_content"
                       android:gravity="right"
                       android:includeFontPadding="false"
                       android:orientation="vertical" >

                        <TextView
                           android:id="@+id/TVPointFive"
                           android:layout_width="wrap_content"
                           android:layout_height="wrap_content"
                           android:includeFontPadding="false"
                           android:text="0"
                           android:textSize="@dimen/vinciteSTD" />

                        <TextView
                           android:id="@+id/TVPointRoyal"
                           android:layout_width="wrap_content"
                           android:layout_height="wrap_content"
                           android:includeFontPadding="false"
                           android:text="0"
                           android:textSize="@dimen/vinciteSTD" />

                        <TextView
                           android:id="@+id/TVPointStraightFlush"
                           android:layout_width="wrap_content"
                           android:layout_height="wrap_content"
                           android:includeFontPadding="false"
                           android:text="0"
                           android:textSize="@dimen/vinciteSTD" />

                        <TextView
                           android:id="@+id/TVPointPoker"
                           android:layout_width="wrap_content"
                           android:layout_height="wrap_content"
                           android:includeFontPadding="false"
                           android:text="0"
                           android:textSize="@dimen/vinciteSTD" />

                        <TextView
                           android:id="@+id/TVPointFull"
                           android:layout_width="wrap_content"
                           android:layout_height="wrap_content"
                           android:includeFontPadding="false"
                           android:text="0"
                           android:textSize="@dimen/vinciteSTD" />

                        <TextView
                           android:id="@+id/TVPointFlush"
                           android:layout_width="wrap_content"
                           android:layout_height="wrap_content"
                           android:includeFontPadding="false"
                           android:text="0"
                           android:textSize="@dimen/vinciteSTD" />

                        <TextView
                           android:id="@+id/TVPointStraight"
                           android:layout_width="wrap_content"
                           android:layout_height="wrap_content"
                           android:includeFontPadding="false"
                           android:text="0"
                           android:textSize="@dimen/vinciteSTD" />

                        <TextView
                           android:id="@+id/TVPointTris"
                           android:layout_width="wrap_content"
                           android:layout_height="wrap_content"
                           android:includeFontPadding="false"
                           android:text="0"
                           android:textSize="@dimen/vinciteSTD" />

                        <TextView
                           android:id="@+id/TVPoint2Pairs"
                           android:layout_width="wrap_content"
                           android:layout_height="wrap_content"
                           android:includeFontPadding="false"
                           android:text="0"
                           android:textSize="@dimen/vinciteSTD" />

                        <TextView
                           android:id="@+id/TVPointCoppia"
                           android:layout_width="wrap_content"
                           android:layout_height="wrap_content"
                           android:includeFontPadding="false"
                           android:text="0"
                           android:textSize="@dimen/vinciteSTD" />

                    </LinearLayout>
                </LinearLayout>

                <Button
                   android:id="@+id/BMagicNumber"
                   android:layout_width="0dp"
                   android:layout_height="wrap_content"
                   android:layout_weight="30"
                   android:background="@drawable/magicnumber"
                   android:text="1"
                   android:textSize="@dimen/MagicSizeSTD"
                   android:textStyle="italic" />

                    <LinearLayout
                       android:id="@+id/LinearLayoutRight"
                       android:layout_width="0dp"
                       android:layout_height="fill_parent"
                       android:layout_gravity="center"
                       android:layout_weight="35"
                       android:background="@drawable/sfondino3"
                       android:gravity="center"
                       android:orientation="vertical"
                       android:weightSum="100" >

                        <LinearLayout
                           android:layout_width="match_parent"
                           android:layout_height="wrap_content"
                           android:layout_weight="10" >

                            <LinearLayout
                               android:id="@+id/LLay1"
                               android:layout_width="0dp"
                               android:layout_height="wrap_content"
                               android:layout_weight="35"
                               android:orientation="vertical" >

                                <TextView
                                   android:id="@+id/TextView11"
                                   android:layout_width="wrap_content"
                                   android:layout_height="wrap_content"
                                   android:layout_gravity="right"
                                   android:layout_marginTop="3dp"
                                   android:text="Coins"
                                   android:textStyle="bold" />

                                <TextView
                                   android:id="@+id/tvCoins"
                                   android:layout_width="wrap_content"
                                   android:layout_height="wrap_content"
                                   android:layout_gravity="right"
                                   android:layout_margin="1dp"
                                   android:text="100" />

                            </LinearLayout>

                            <LinearLayout
                               android:id="@+id/LLay2"
                               android:layout_width="0dp"
                               android:layout_height="wrap_content"
                               android:layout_weight="35"
                               android:orientation="vertical" >

                                <TextView
                                   android:id="@+id/TextView13"
                                   android:layout_width="wrap_content"
                                   android:layout_height="wrap_content"
                                   android:layout_gravity="right"
                                   android:layout_marginTop="3dp"
                                   android:text="Points"
                                   android:textStyle="bold" />

                                <TextView
                                   android:id="@+id/tvPoints"
                                   android:layout_width="wrap_content"
                                   android:layout_height="wrap_content"
                                   android:layout_gravity="right"
                                   android:layout_margin="1dp"
                                   android:text="0" />

                            </LinearLayout>

                            <LinearLayout
                               android:id="@+id/LLay3"
                               android:layout_width="0dp"
                               android:layout_height="wrap_content"
                               android:layout_marginRight="10dp"
                               android:layout_weight="25"
                               android:orientation="vertical" >

                                <TextView
                                   android:id="@+id/TextView12"
                                   android:layout_width="wrap_content"
                                   android:layout_height="wrap_content"
                                   android:layout_gravity="right"
                                   android:layout_marginTop="3dp"
                                   android:text="Bet"
                                   android:textStyle="bold" />

                                <TextView
                                   android:id="@+id/tvBet"
                                   android:layout_width="wrap_content"
                                   android:layout_height="wrap_content"
                                   android:layout_gravity="right"
                                   android:layout_margin="1dp"
                                   android:gravity="center"
                                   android:text="1" />

                            </LinearLayout>

                        </LinearLayout>

                        <LinearLayout
                           android:layout_width="match_parent"
                           android:layout_height="wrap_content"
                           android:layout_gravity="center"
                           android:layout_weight="90"
                           android:gravity="center"
                           android:weightSum="100" >

                            <TextView
                               android:id="@+id/TVWIN"
                               android:layout_width="wrap_content"
                               android:layout_height="wrap_content"
                               android:layout_gravity="center"
                               android:layout_weight="10"
                               android:text="WIN: "
                               android:textColor="#FF0000"
                               android:textStyle="bold" />

                            <TextView
                               android:id="@+id/TVPuntiVinti"
                               android:layout_width="wrap_content"
                               android:layout_height="wrap_content"
                               android:layout_gravity="center"
                               android:layout_weight="10"
                               android:text="TextView"
                               android:textStyle="bold" />

                        </LinearLayout>

                </LinearLayout>

            </LinearLayout>

        </LinearLayout>

        <LinearLayout
           android:id="@+id/MiddleLayout"
           android:layout_width="match_parent"
           android:layout_height="0dp"
           android:layout_gravity="right"
           android:layout_weight="40"
           android:background="#38EE38"
           android:gravity="center|center_horizontal"
           android:orientation="vertical"
           android:weightSum="100" >

            <LinearLayout
               android:id="@+id/minchione"
               android:layout_width="match_parent"
               android:layout_height="match_parent"
               android:layout_weight="80"
               android:gravity="center" >

                <Button
                   android:id="@+id/BPalla1"
                   android:layout_width="@dimen/PallaSTD"
                   android:layout_height="@dimen/PallaSTD"
                   android:background="@drawable/jollyfinal" />

                <Button
                   android:id="@+id/BPalla2"
                   android:layout_width="@dimen/PallaSTD"
                   android:layout_height="@dimen/PallaSTD"
                   android:background="@drawable/jollyfinal" />

                <Button
                   android:id="@+id/BPalla3"
                   android:layout_width="@dimen/PallaSTD"
                   android:layout_height="@dimen/PallaSTD"
                   android:background="@drawable/jollyfinal" />

                <Button
                   android:id="@+id/BPalla4"
                   android:layout_width="@dimen/PallaSTD"
                   android:layout_height="@dimen/PallaSTD"
                   android:background="@drawable/jollyfinal" />

                <Button
                   android:id="@+id/BPalla5"
                   android:layout_width="@dimen/PallaSTD"
                   android:layout_height="@dimen/PallaSTD"
                   android:background="@drawable/jollyfinal" />
            </LinearLayout>

            <LinearLayout
               android:id="@+id/cazzone"
               android:layout_width="match_parent"
               android:layout_height="wrap_content"
               android:layout_weight="20"
               android:gravity="center" >

                <ImageView
                   android:id="@+id/IVHold1"
                   android:layout_width="@dimen/PallaSTD"
                   android:layout_height="20dp"
                   android:src="@drawable/hold"
                   android:visibility="invisible" />

                <ImageView
                   android:id="@+id/IVHold2"
                   android:layout_width="@dimen/PallaSTD"
                   android:layout_height="20dp"
                   android:src="@drawable/hold"
                   android:visibility="invisible" />

                <ImageView
                   android:id="@+id/IVHold3"
                   android:layout_width="@dimen/PallaSTD"
                   android:layout_height="20dp"
                   android:src="@drawable/hold"
                   android:visibility="invisible" />

                <ImageView
                   android:id="@+id/IVHold4"
                   android:layout_width="@dimen/PallaSTD"
                   android:layout_height="20dp"
                   android:src="@drawable/hold"
                   android:visibility="invisible" />

                <ImageView
                   android:id="@+id/IVHold5"
                   android:layout_width="@dimen/PallaSTD"
                   android:layout_height="20dp"
                   android:src="@drawable/hold"
                   android:visibility="invisible" />

            </LinearLayout>

                        </LinearLayout>

            <LinearLayout
               android:id="@+id/BottomLayout"
               android:layout_width="match_parent"
               android:layout_height="0dp"
               android:layout_weight="20"
               android:background="@color/verdino"
               android:gravity="center"
               android:orientation="vertical" >

                <LinearLayout
                   android:layout_width="match_parent"
                   android:layout_height="wrap_content"
                   android:layout_gravity="center"
                   android:gravity="center"
                   android:orientation="horizontal"
                   android:weightSum="100" >

                    <LinearLayout
                       android:layout_width="wrap_content"
                       android:layout_height="wrap_content"
                       android:layout_weight="90"
                       android:gravity="center" >

                        <Button
                           android:id="@+id/BBet"
                           android:layout_width="@dimen/TastiSTD"
                           android:layout_height="@dimen/TastiSTD" />

                        <Button
                           android:id="@+id/BTake"
                           android:layout_width="@dimen/TastiSTD"
                           android:layout_height="@dimen/TastiSTD" />

                        <Button
                           android:id="@+id/BLow"
                           android:layout_width="@dimen/TastiSTD"
                           android:layout_height="@dimen/TastiSTD" />

                        <Button
                           android:id="@+id/BHigh"
                           android:layout_width="@dimen/TastiSTD"
                           android:layout_height="@dimen/TastiSTD" />

                        <Button
                           android:id="@+id/BDouble"
                           android:layout_width="@dimen/TastiSTD"
                           android:layout_height="@dimen/TastiSTD" />

                        <Button
                           android:id="@+id/BStart"
                           android:layout_width="@dimen/TastiSTD"
                           android:layout_height="@dimen/TastiSTD" />
                    </LinearLayout>
                </LinearLayout>
            </LinearLayout>

            <LinearLayout
               android:id="@+id/LLad"
               android:layout_width="match_parent"
               android:layout_height="wrap_content"
               android:layout_weight="1"
               android:background="#38EE38"
               android:orientation="vertical" >
            </LinearLayout>

        </LinearLayout>

</RelativeLayout>

Codice (Java): [Seleziona]
private MobvistaAd mMobAd;
       
       
        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
               
       
                setContentView(R.layout.activity_main);
               
               
                //add Banner in our layout
        try{
                mMobAd = new MobvistaAd(this, "1", "8a74b3df992e13e1ef0f70d72a35c6d2");
               
                System.out.println(" - - -   Provo a caricare il Banner -  -  -  ");
                        LinearLayout layout = (LinearLayout)findViewById(R.id.LLad);

                       
                        View banner = mMobAd.getBannerAdView(this, new AdListener(){
                               
                                @Override
                                        public void onAdShow() {
                                        Log.d("MobvistaAd","BannerAd onAdShow");
                                        }
                                       
                                        @Override
                                        public void onAdLoaded() {
                                                Log.d("MobvistaAd","BannerAd onAdLoaded");
                                        }
                                       
                                        @Override
                                        public void onAdFailToLoad() {
                                                Log.d("MobvistaAd","BannerAd onAdFailToLoad");
                                        }
                                       
                                        @Override
                                        public void onAdClose() {
                                                Log.d("MobvistaAd","BannerAd onAdClose");
                                        }
                                       
                                        @Override
                                        public void onAdClick() {
                                                Log.d("MobvistaAd","BannerAd onAdClick");
                                        }
                               
                        });
                       
                       
                        layout.addView(banner);
        }
        catch(Exception e)
        {
                System.out.println(" - - -   Problema nel caricamento del banner! -  -  -  ");
        }      


Suppongo ci sia un problema dal lato java, ma non ho idea di quale possa essere. Allego anche il logcat.
Da notare che l'app va in crash ovunque metto AdLayout, tranne che se lo metto lì dove sta.



Ringrazio chiunque abbia la pazienza di dare un'occhiata e chiunque possa darmi qualche dritta per risolvere il problema...

Offline Blodhgard

  • Utente junior
  • **
  • Post: 53
  • Respect: +3
    • Mostra profilo
    • Budget Veloce
  • Dispositivo Android:
    Nexus 5, S4 mini, Galaxy Tab S
  • Play Store ID:
    blodhgard
  • Sistema operativo:
    Windows 8.1
Re:Cambiando l'ordine del Layout l'app crasha
« Risposta #1 il: 25 Febbraio 2015, 13:22:04 CET »
0
Dal logcat:
java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.LinearLayout

Avrai fatto confusione con gli id da qualche parte, scambiando una TextView con un LinearLayout nel codice java(forse non nella parte di codice che hai postato perchè in quella sembra andare bene).
« Ultima modifica: 25 Febbraio 2015, 13:24:49 CET da Blodhgard »

Offline xdoppiadx

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Fit
  • Sistema operativo:
    Windows 7
Re:Cambiando l'ordine del Layout l'app crasha
« Risposta #2 il: 26 Febbraio 2015, 23:50:54 CET »
0
Dal logcat:
java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.LinearLayout

Avrai fatto confusione con gli id da qualche parte, scambiando una TextView con un LinearLayout nel codice java(forse non nella parte di codice che hai postato perchè in quella sembra andare bene).

Innanzitutto grazie per la risposta, sono giorni che ci sbatto la testa e non riesco a trovare il bandolo della matassa.
Quella riga del LogCat l'avevo notata, ma non credo che il problema sia relativo a qualche TextView (anche se non mi spiego perchè spunti fuori questo errore), ho controllato e gli ID sembrano assegnati correttamente.
Oltretutto, il problema si presenta se cambio l'ordine dei layout direttamente dall'XML, senza toccare il codice java.
Se fosse problema di ID dei layout, il problema non dovrebbe presentarsi in ogni caso?

Offline Blodhgard

  • Utente junior
  • **
  • Post: 53
  • Respect: +3
    • Mostra profilo
    • Budget Veloce
  • Dispositivo Android:
    Nexus 5, S4 mini, Galaxy Tab S
  • Play Store ID:
    blodhgard
  • Sistema operativo:
    Windows 8.1
Re:Cambiando l'ordine del Layout l'app crasha
« Risposta #3 il: 27 Febbraio 2015, 13:39:10 CET »
0
Fai doppio click nel logcat sulla riga che ti da l'errore e ti porta alla parte di codice che genera l'eccezione.
Da li forse riuscirai a saltarci fuori sapendo dov'è il problema

Offline ponticello

  • Utente junior
  • **
  • Post: 50
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    galaxy s2
  • Play Store ID:
    littlebridge
  • Sistema operativo:
    ubuntu 10.10
Re:Cambiando l'ordine del Layout l'app crasha
« Risposta #4 il: 02 Marzo 2015, 17:39:35 CET »
0
Anche a me è capitato molte volte !!
Prova a fare una modifica sul Manifest salvare e ri-buildare!!
Questa operazione aggiorna gli id autogenerati
Le mie app sullo store

    

Offline Blodhgard

  • Utente junior
  • **
  • Post: 53
  • Respect: +3
    • Mostra profilo
    • Budget Veloce
  • Dispositivo Android:
    Nexus 5, S4 mini, Galaxy Tab S
  • Play Store ID:
    blodhgard
  • Sistema operativo:
    Windows 8.1
Re:Cambiando l'ordine del Layout l'app crasha
« Risposta #5 il: 02 Marzo 2015, 21:11:22 CET »
0
Sì quoto ponticiello.
Prova a fare un clean del progetto in modo che gli id vengano rigenerati. Mi è capitato una volta con un stringa che anche avendola modificata, usava sempre quella vecchia.
Vai in project -> clean

Offline xdoppiadx

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Fit
  • Sistema operativo:
    Windows 7
Re:Cambiando l'ordine del Layout l'app crasha
« Risposta #6 il: 03 Marzo 2015, 10:45:46 CET »
0
Anche a me è capitato molte volte !!
Prova a fare una modifica sul Manifest salvare e ri-buildare!!
Questa operazione aggiorna gli id autogenerati

Hai ragionissima!
L'ho fatto tante volte in vecchi progetti quando c'era qualche problema di cui non mi riuscivo a dare una spiegazione, e il 99% delle volte funzionava. Perchè non ci ho pensato? Si vede che mi sto' arrugginendo stando lontano da Eclipse...
Appena ho un po' di tempo provo, spero questo caso rientri nel 99%  :-P

Vi farò sapere...

Offline xdoppiadx

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Fit
  • Sistema operativo:
    Windows 7
Re:Cambiando l'ordine del Layout l'app crasha
« Risposta #7 il: 22 Marzo 2015, 11:32:31 CET »
0
Risolto :)
Bastava fare un semplice re-build.
Grazie mille a tutti!