1

現在、ローカル FTP サーバーに接続する必要がある Android アプリケーションを開発しています (Filezilla サーバーを使用しています)。org.commons.apache.net ftp ライブラリをダウンロードしました。

私のAndroidプロジェクトに関連するコードは次のとおりです。

    FTPClient mFTPClient = new FTPClient();

    try {
        mFTPClient = new FTPClient();
        mFTPClient.connect("10.0.2.2", 21);

        if (FTPReply.isPositiveCompletion(mFTPClient.getReplyCode())) {
            mFTPClient.login("lucas", "elie");
            mFTPClient.setFileType(FTP.BINARY_FILE_TYPE);
            mFTPClient.enterLocalPassiveMode();
        }

    } catch (SocketException e) {
        Log.e("TEST", "SocketException: " + e.getStackTrace().toString() + " " + e.getMessage());
    } catch (UnknownHostException e) {
        Log.e("TEST", "UnknownHostException: " + e.getStackTrace().toString() + " " + e.getMessage());
    } catch (IOException e) {
        Log.e("TEST", "IOException: " + e.getStackTrace().toString() + " " + e.getMessage());
    }

    //

    FileOutputStream desFileStream;
    try {
        desFileStream = new FileOutputStream("/mnt/sdcard/sample_0.jpg");
        mFTPClient.retrieveFile("/sample_0.jpg", desFileStream);
        desFileStream.close();
    } catch (FileNotFoundException e) {
        Log.e("TEST", "FileNotFoundException: " + e.getStackTrace().toString() + " " + e.getMessage());
    } catch (IOException e) {
        Log.e("TEST", "IOException: " + e.getStackTrace().toString() + " " + e.getMessage());
    }

接続は機能しています (mFTPClient.connect("10.0.2.2", 21);)、ローカル サーバー インターフェイスで確認できますが、ファイルをダウンロードしようとすると (mFTPClient.retrieveFile("/sample_0. jpg"、desFileStream);)、私は Logcat で IOException を取得しています:

04-07 11:25:26.300: E/TEST(671): IOException: [Ljava.lang.StackTraceElement;@412ca688 は /127.0.0.1 (ポート 2832) への接続に失敗しました: 接続に失敗しました: ECONNREFUSED (接続が拒否されました)

Android マニフェスト XML ファイルに次の 2 行を追加しました。

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

まったく同じコードを使用しますが、Android プロジェクトではなく従来の Java プロジェクトでは、すべて問題なく動作します (10.0.2.2 を 127.0.0.1 に、"/mnt/sdcard" を "C:\" に置き換えます) !

誰か助けてくれませんか?

編集:間違いを見つけました。それが誰かを助けることができるなら、10.0.2.2をローカルIPアドレス(私の場合は192.168.0.5)に置き換えるだけでした

4

0 に答える 0