使用org.apache.commons.net.ftp.FTPClient从AsyncTask类登录FTP时出错

时间:2014-12-31 10:38:17

标签: java android android-asynctask ftp

我使用AsyncTask登录ftp帐户,但我一直收到此错误,

12-31 15:26:19.637: E/dalvikvm(5986): Could not find class 'org.apache.commons.net.ftp.FTPClient', referenced from method com.example.testme.Processing.connnectingwithFTP

我可以理解我的Asynctask内部的方法虽然导入正常但无法找到FTPClient类。但我不知道如何使我的内部AsyncTask方法找到FTPClient类。

这是我的代码,

AsyncTask类

class Processing extends AsyncTask<Object, Void, Void> {

    @Override
    protected Void doInBackground(Object... params) {
        connnectingwithFTP("host", "username",
                "password");
        return null;
    }

    public void connnectingwithFTP(String ip, String userName, String pass) {
        boolean status = false;
        try {
            FTPClient mFtpClient = new FTPClient();

            mFtpClient.setConnectTimeout(10 * 1000);
            mFtpClient.connect(InetAddress.getByName(ip));
            status = mFtpClient.login(userName, pass);
            Log.e("isFTPConnected", String.valueOf(status));
            if (FTPReply.isPositiveCompletion(mFtpClient.getReplyCode())) {
                mFtpClient.setFileType(FTP.ASCII_FILE_TYPE);
                mFtpClient.enterLocalPassiveMode();
                FTPFile[] mFileArray = mFtpClient.listFiles();
                Log.e("Size", String.valueOf(mFileArray.length));
            }
        } catch (SocketException e) {
            e.printStackTrace();
        } catch (UnknownHostException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

这就是我在onCreate方法中所做的,

Processing p1 = new Processing();
        p1.execute();

1 个答案:

答案 0 :(得分:2)

您应该将jar文件添加到项目的libs文件夹中。另外,请确保在Order and Export标签下进行了检查。