Absturz bei Verbindungsversuch mit FTP

  • Hi, ich entwickle gerade eine App, mit der man später Daten auf einen FTP Server hochladen und wieder downloaden können soll.
    Der Programmcode funktioniert als Programm aufm PC fabelhaft, aber wenn ich ihn in meiner App ausführe, stürzt diese ab, sobald ich versuche eine Verbindung mit dem Server herzustellen. Habe das Library von Apache: Commons Net 3.3 integriert.
    Grundsätzlich funktionieren andere Methoden der eingebundenen Klassen von Apache, nur kommt es sofort zum Absturz auf meinem Handy wenn ich die App über den Developer Mode im Android Studio 1.1 ausführe und der Programmcode an der Stelle


    "ftpClient.connect(InetAddress.getByName(server));" steht. >>App wurde leider beendet"<< steht dann aufm Handy.
    Ich habe übrigens ein Huawei Ascend G525, Android 4.1.


    Ich habe sehr lange im Internet geschaut, bin aber nicht fündig geworden, wo der Fehler liegt. Sollte denke ich auch nicht im Programmcode liegen.


    Ich würde mich sehr über hilfreiche Antworten freuen, die mich bei der Problemlösung weiterbringen. Danke :)



    Mein Programmcode:



    package com.example.marcel.innvite_v1;



    import android.support.v7.app.ActionBarActivity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;



    import org.apache.commons.net.ftp.FTP;
    import org.apache.commons.net.ftp.FTPClient;



    import java.io.*;
    import java.net.InetAddress;




    public class MainActivity extends ActionBarActivity {



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

    String server = "aviciii.bplaced.net";
    int port = 21;
    String user = ""; //Spielt hier noch keine Rolle, es ist erst einmal wichtig, dass eine Verbindung zum Server möglich ist.
    String pass = "";



    FTPClient ftpClient = new FTPClient();
    try {



    ftpClient.connect(InetAddress.getByName(server)); //Hier stürzt die App ab
    ftpClient.login(user, pass);
    ftpClient.enterLocalPassiveMode(); //Andere Methoden, wie diese funktionieren
    ftpClient.setFileType(FTP.BINARY_FILE_TYPE);



    String remoteFile1 = "/test/testdoc.txt";
    File downloadFile1 = new File("/storage/sdcard0/testdoc.txt");
    OutputStream outputStream1 = new BufferedOutputStream(new FileOutputStream(downloadFile1));
    boolean success = ftpClient.retrieveFile(remoteFile1, outputStream1);
    outputStream1.close();



    if (success) {
    System.out.println("File #1 has been downloaded successfully.");
    }




    } catch (IOException ex) {
    System.out.println("Error: " + ex.getMessage());
    ex.printStackTrace();
    }


    finally {
    try {
    if (ftpClient.isConnected()) {
    ftpClient.logout();
    ftpClient.disconnect();
    }


    } catch (IOException ex) {
    ex.printStackTrace();



    }
    }


    }


    // AB HIER DER CODE, DER SCHON STANDARDMÄßIG IM NEUEN PROJEKT VORHANDEN IST



    public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
    }



    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();



    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
    return true;
    }



    return super.onOptionsItemSelected(item);
    }
    }

  • Seit Android 4 werden Netzwerkzugriffe auf dem Mainthread mit Abstürzen geahndet.


    Wenn Du das natürlich schon berücksichtigt hast, wären Ausgaben aus LogCat hilfreich. ;)

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!