1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

LayoutParams stürzt ab

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von AquaBall, 30.04.2012.

  1. AquaBall, 30.04.2012 #1
    AquaBall

    AquaBall Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    121
    Erhaltene Danke:
    2
    Registriert seit:
    29.02.2012
    Ich hab einen sehr einfachen Programmteil, bring ihn aber nicht zum Laufen:

    Code:
                img= (ImageView) findViewById(R.id.meinBild);
                LayoutParams lp= new LayoutParams(20, 10);  // später: variabel
                try {  // (Nur für die Fehlersuche: abfangen)
                    img.setLayoutParams(lp);
                } catch (Exception e) {
                }
    
    Code:
        <ImageView
            android:id="@+id/skala"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/meinbild" />
    
    Das Bild existiert, und wird korrekt angezeigt.
    Das setLayoutParams aber stürzt immer ab, (sogar mit try,catch, was ich schon gar nicht verstehe).

    Fehlermeldung:
    Code:
    04-30 19:24:11.386: E/AndroidRuntime(2322):
     java.lang.ClassCastException: android.view.ViewGroup$LayoutParams
         at android.widget.LinearLayout.measureVertical(LinearLayout.java:360)
         at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
         at android.view.View.measure(View.java:8313)
         at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
         at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
         at android.view.View.measure(View.java:8313)
         ...
    
     
  2. swordi, 30.04.2012 #2
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    Falscher import

    Gesendet von meinem Galaxy Nexus mit der Android-Hilfe.de App
     
    AquaBall bedankt sich.
  3. AquaBall, 30.04.2012 #3
    AquaBall

    AquaBall Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    121
    Erhaltene Danke:
    2
    Registriert seit:
    29.02.2012
    Genial.

    Hätt' ich wohl lange gesucht. (bzw. hab ja schon ewig gesucht.)

    Woran hast du das rausgelesen?
     
  4. swordi, 01.05.2012 #4
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    weil

    1) war ich auch mal anfänger
    2) gibts zu jedem anfänger problem hier mindestens 3 gleiche threads :D von daher hab ich alles schon sehr oft gesehen
     
  5. AquaBall, 01.05.2012 #5
    AquaBall

    AquaBall Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    121
    Erhaltene Danke:
    2
    Registriert seit:
    29.02.2012
    Du hast aber nicht aus dem Fehlerprotokoll etwas konkretes erkannt, oder?
     
  6. DieGoldeneMitte, 01.05.2012 #6
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Beiträge:
    1,230
    Erhaltene Danke:
    256
    Registriert seit:
    05.02.2010
    Phone:
    Nexus 5X
    Tablet:
    Nexus 7 (2013)
    Die ClassCastException liefert nur einen Hinweis.
    Aber man braucht schon eine frisch polierte Kristallkugel und den Fehler festzunageln.
    Gut das Swordi gerade eine parat hatte :D
     
  7. Tom299, 02.05.2012 #7
    Tom299

    Tom299 Android-Experte

    Beiträge:
    602
    Erhaltene Danke:
    120
    Registriert seit:
    31.08.2011
    Naja, wenn jemand im Code LayoutParams verwendet und es danach kracht oder nicht läuft wie es soll, kannst du 99% davon ausgehen, daß die falschen LayoutParams verwendet / importiert wurden. Dafür brauchste keine Kristallkugel ;-)
     
  8. AquaBall, 02.05.2012 #8
    AquaBall

    AquaBall Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    121
    Erhaltene Danke:
    2
    Registriert seit:
    29.02.2012
    Was ich aber immer noch nicht verstehe, ist, warum try-catch das nicht abfängt.
     
  9. DieGoldeneMitte, 02.05.2012 #9
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Beiträge:
    1,230
    Erhaltene Danke:
    256
    Registriert seit:
    05.02.2010
    Phone:
    Nexus 5X
    Tablet:
    Nexus 7 (2013)
    Das liegt daran, dass das Objekt erst später (erfolglos) gecastet wird (du sicherst nur die Parameter-Übergabe) . Das kann man an dem Stacktrace sehen: du bist da irgendwo in "onMeasure" ...
     

Diese Seite empfehlen