1

我正在将 Apache FTP 服务器集成到我的 Android 应用程序中。
按照此处的说明(在 5 分钟内嵌入 FtpServer): http: //mina.apache.org/ftpserver-project/embedding_ftpserver.html

但是,在包含所有代码并将 jar 文件导入我的 android 项目后,我遇到了两个主要错误:1. ftp 服务器开始声称找不到类时应用程序崩溃 2. Dalvik 错误 1

通过研究所有相关问题尝试了每种方法,解决方案是保留(在 5 分钟内嵌入 FtpServer)指令中列出的 jar 文件的最小子集并编译代码。由于 jar 文件不多,所以我只是做了一些尝试和错误来获得我的最小子集。

之后我使用一些新代码来启动 ftp 服务器(这里是链接):编写 java ftp 服务器

但是我无法连接,因为它说缺少 user.properties 文件。我下载了 ftpserver-1.0.6-src 源代码并将 user.properties 文件放入我的 android sdcard 以使 ftp 启动。我先将 user.properties 文件放在 assets 文件夹中,然后使用一些代码将其复制到 sdcard 中。

现在一切似乎都奏效了。但是,我无法使用匿名登录,因为我的用户名和密码是通过以下方式设置的:BaseUser user = new BaseUser(); user.setName("test"); user.setPassword("test");

如果我不设置它,代码将无法编译。
以匿名用户身份登录是我要做的最后一部分。另一件小事是当我 ftp 到我的 android 服务器时,它不允许我下载文件,因为它没有返回权限错误。

欢迎任何建议。谢谢

4

1 回答 1

0

我遇到了同样的问题,所以我创建了自定义的新 users.properties 文件。这是代码:

    File files=new File(filepath + "/users.properties");  
    if (!files.exists()) {
          try {
              files.createNewFile();
          } catch (IOException e) {
             Log.e(TAG, "Errore nella creazione del file di log", e);
              e.printStackTrace();
          }
    }
    userManagerFactory.setFile(files);  
    userManagerFactory.setPasswordEncryptor(new SaltedPasswordEncryptor());
    UserManager um = userManagerFactory.createUserManager();
    BaseUser user = new BaseUser();
    user.setName("xxx");
    user.setPassword("yyy");
    user.setHomeDirectory("/mnt/sdcard");

    List<Authority> auths = new ArrayList<Authority>();
    Authority auth = new WritePermission();
    auths.add(auth);
    user.setAuthorities(auths);

    try {
        um.save(user);
    } catch (FtpException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
于 2014-05-09T10:25:53.803 回答