Frage von akin2000, 2

Android - Wie kann ich eine String mit URL füllen?

Hey,

Ich habe eine URL "yyyyyyy.com/test.txt", welches eine Textdatei ist. Es beinhaltet URL-Links zu .mp3 Audios.

yyyyyyy.de/1.mp3
yyyyyyy.de/2.mp3
yyyyyyy.de/3.mp3        //so sieht die Textdatei auf dem Server aus

Ich möchte jede Zeile in einem Array speichern.

urls[0]=yyyyyyy.de/1.mp3
urls[1]=yyyyyyy.de/2.mp3 ...        

Hier mein Code:

String[] urls;
int i=0;

Random rand;
int min=0;
int max=5; // I have 6 Urls in the text file
int randomNum;

@Override

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

  rand = new Random();

    randomNum = rand.nextInt((max - min) + 1) + min; //generates integer between 0-5
    try {
        // Create a URL for the desired page
        URL url = new URL("yyyyy.de/test.txt"); //My text file location

        // Read all the text returned by the server
        BufferedReader in = new BufferedReader(new     InputStreamReader(url.openStream()));
        String str;
        while ((str = in.readLine()) != null) {
           urls[i]=str;
           i++;
        }
        in.close();
       } catch (MalformedURLException e) {
      } catch (IOException e) {
     }


    boolean isPLAYING = false;

    if (!isPLAYING) {
        isPLAYING = true;
        MediaPlayer mp = new MediaPlayer();
        try {
            mp.setDataSource(urls[randomNum]);
            mp.prepare();
            mp.start();
        } catch (IOException e) {

        }
    } else {
        isPLAYING = false;

    }

}

Und hier der Logcat Error: http://textuploader.com/5iw5b

Danke im Voraus !!!

Antwort
von Tschoo, 1

Hallo!

Dies ist die relevante Zeile, in deinem LogCat ('caused by'), also in Zeile 57

Caused by: java.lang.NullPointerException: Attempt to read from null array
at com.x.y.eigeneapp.MainActivity.onCreate(MainActivity.java:57)
java.lang.RuntimeException: Unable to start activity

wobei ich aber nicht weis, welchen Prozess Android hier (oben)  meint.

Kommentar von akin2000 ,

Diese Zeile wird beschrieben "

 mp.setDataSource(urls[randomNum]);
Kommentar von Tschoo ,

Schau mal, wie der Infex i läuft, was als Random rauskommt ...

Hat z.B. urls[3] überhaupt einen Wert?

Mit Debugger oder mit Ausgabe in LogCat oder Toast.

Würde aber Debugger bevorzugen.

2 Breakpoints

bei

 if(!isPlaying)

und bei 

randomNum = rand.nextInt(...)
Kommentar von akin2000 ,

mir ist aufgefallen die Schleife wird nicht aktiv...dort habe ich TextView.setText("test") ausprobiert und es ging nicht, doch vor der Schleife funktioniert dieser Befehl

Kommentar von Tschoo ,

Du hast zwei Schleifen -- aber du weist ja, welche nicht aktiv wird.

Also hast du den Fehler gefunden, jetzt musst du in nur korrigieren.

Antwort
von androhecker, 2

Das Array wird nie initialisiert, deswegen die NullPointerException.

Kommentar von akin2000 ,

Mir wurde gesagt:

Your array is NULL

put this code after

super.onCreate urls=new String[max]

Doch der selbe Error http://textuploader.com/5iwto

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten