Source not found bei "findViewById"

  • 3 Antworten
  • Letztes Antwortdatum
R

RyuZz

Neues Mitglied
0
Hallo Leute,

seit einigen Tagen befasse ich mich nun mit der App-Entwicklung für Android und bin mittlerweile am verzweifeln.
Ich möchte Images in ein LinearLayout(horizontal) einfügen, welches sich in einer horizontalScrollView befindet.

So mein Code:

MainActivity.java
Code:
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        LinearLayout sv = (LinearLayout) findViewById (R.id.linearLayoutimages1);
        
        for (int i=1 ; i<=3; i++){
            String uri = "drawable/testi" + i;
            int imageResource = getResources().getIdentifier(uri, null, getPackageName());
                       
            ImageView iv = new ImageView (this);
            iv.setBackgroundResource (imageResource);
            sv.addView(iv);
        }
fragment_main.xml
Code:
<ScrollView 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="com.example.xproject.MainActivity$PlaceholderFragment" >

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <TableRow
            android:id="@+id/tableRow1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <HorizontalScrollView
                android:id="@+id/horizontalScrollView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >

                <LinearLayout
                    android:id="@+id/linearLayoutimages1"
                    android:orientation="horizontal"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent" >

                   
                    

                </LinearLayout>
            </HorizontalScrollView>
        </TableRow>
    </TableLayout>
</ScrollView>
Wenn ich nun die App auf mein Handy lade bekomme ich folgende Fehlermeldung:


jbpfv4kx.png


Was übersehe ich, bzw. was habe ich falsch gemacht?
 
du gehst zu tief rein. davon hast du keinen source verfügbar, also kann auch keiner angezeigt werden.

sollte aber kein problem sein, weil dir wird es momentan ja egal sein, was da drin gemacht wird.
 
Hallo,

vielleicht ein kleiner Tipp zu Beginn:
Wenn du die reine Logcat-Ausgabe in Textform anhängst, ist es einfacher dir zu helfen.

Habe deinen Code jetzt nur überflogen und so ganz verstehe ich auch nicht was du machen willst. Du schreibst, du willst mehrere Bilder anzeigen, rufst aber die Methode setBackgroundRessource auf. Hmm?

Auf den ersten Blick wäre eine mögliche Fehlerquelle:
-du speicherst in einem Integer-Datentyp deine Hintergrund-Ressource ab.
Folge: unter setBackgroundResource(zB 1) wird nichts gefunden und es wird von dir beschriebener Fehler ausgegeben.

Andere Fehlerquelle:
-in deiner Initialisierung der Ressourcen "...testi" + i läuft irgendwas verkehrt. Bist du sicher, dass die von dir verwendete Code den String so modifiziert wie du ihn brauchst, um auf deine Ressourcen zugreifen zu können.
Bei der Prüfung hilft hier Logcat. zB via Log.d("Stringtest", i + ". String: " + url); ggf. musst du mal das iv.setBack... auskommentieren um zu testen.

Mögliche Fehlerbehebung:
Lege die Ressourcen in einer Liste / Array ab und greife dann mittels setBackgroundResource(getResources().getDrawable(deine Liste.at(xy)) auf die entsprechenden Ressourcen zu.
 
Du setzt mit setContentView das Layout auf "activity_main.xml".

findViewById sucht dann in diesem Layout dein LinearLayout. Dieses hast du aber in fragment_main.xml definiert. Daher wird dir findViewById Null zurückgeben.

Dies könnte hilfreich sein: Fragment | Android Developers
http://stackoverflow.com/questions/6495898/findviewbyid-in-fragment-android

Ich hab mal geraten, weil bei deiner Fehlermeldung sieht man jetzt auch nicht wirklich, was schief läuft. Da ist mir Logcat dann doch lieber. XD

Mit so ziemlicher Sicherheit steht bei "exception RuntimeException" dahinter: "Unable to start activity blablabla ... NullPointerException" oder? ^^
 
Zuletzt bearbeitet:
Zurück
Oben Unten