Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 03.10.2014
Сообщений: 5

Apache commons net Ftp в android

10.01.2015, 16:25. Показов 2595. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу программу для вывода названий файлов и директорий , на java никаких проблем не возникло, создал отдельный класс с новым потоком и там все разместил , а в android такое почему-то не катит . После долгих мучений вроде, что получилось, но программа вылетает и ошибка в логах java.lang.NullPointerException: storage == null, никак не могу понять почему, мне кажется он не подключается к серверу вообще , что я не так делаю?? В манифесте разрешение прописал .

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
public class Main extends ActionBarActivity {
ListView listView;
ArrayAdapter arrayAdapter;
String resultList[] = null;
 
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
 
ResultFtp resultFtp = new ResultFtp();
resultFtp.execute();
 
}
 
class ResultFtp extends AsyncTask<Void, Void, Void>{
 
@Override
protected Void doInBackground(Void... params) {
 
FTPClient ftpClient = new FTPClient();
try {
ftpClient.connect("сервер");
ftpClient.login("логин, "пароль");
 
for(String f : ftpClient.listNames()){
 
resultList = ftpClient.listNames();
 
}
 
ftpClient.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
 
return null;
}
 
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
listView = (ListView) findViewById (R.id.listView);
arrayAdapter = new ArrayAdapter (Main.this, android.R.layout.simple_list_item_1, resultList);
listView.setAdapter(arrayAdapter);
 
}
}


В логах
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
java.lang.NullPointerException: storage == null
            at java.util.Arrays$ArrayList.<init>(Arrays.java:38)
            at java.util.Arrays.asList(Arrays.java:155)
            at android.widget.ArrayAdapter.<init>(ArrayAdapter.java:128)
            at com.example.shady1010.gimp.Main$ResultFtp.onPostExecute(Main.java:69)
            at com.example.shady1010.gimp.Main$ResultFtp.onPostExecute(Main.java:39)
            at android.os.AsyncTask.finish(AsyncTask.java:632)
            at android.os.AsyncTask.access$600(AsyncTask.java:177)
            at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.01.2015, 16:25
Ответы с готовыми решениями:

FTP клиент с использованием org.apache.commons.net
Всем добрый день. Необходимо выгружать фотографии на FTP сервер. Изучив тему полнял что нужно использовать библиотеку Apache commons. ...

Gnu.io и org.apache.commons для проекта Android Studio
Здравствуйте! Помогите, пожалуйста, новичку в программировании под Android! Второй день бьюсь над проблемой. Пытаюсь построить готовый...

Библиотека от Apache для работы с FTP на android. Ошибка
Пишу приложение FTP клиент для android. Все в нем работает как надо за исключением этой библиотеки (org.apache.commons.net.ftp.*)....

4
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
10.01.2015, 16:38
Дык проверь...

Java
1
2
3
4
5
6
7
8
9
10
11
@Override
protected void onPostExecute(Void aVoid) {
    super.onPostExecute(aVoid);
    listView = (ListView) findViewById (R.id.listView);
    if  (resultList!=null){
        arrayAdapter = new ArrayAdapter (Main.this, android.R.layout.simple_list_item_1, resultList);
        listView.setAdapter(arrayAdapter);
    }
    else 
          Toast.makeText(getBaseContext(), "Storage String is null", Toast.LONG).show();
}
0
0 / 0 / 0
Регистрация: 03.10.2014
Сообщений: 5
10.01.2015, 16:55  [ТС]
Выводит "Storage String is null", но почему (
0
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
10.01.2015, 21:45
Лучший ответ Сообщение было отмечено Shady1010 как решение

Решение

Мысли вслух...

Что по-вашему у вас делает вот эта странная конструкция
Java
1
2
3
4
for(String f : ftpClient.listNames()){
 
resultList = ftpClient.listNames();
}
"для каждого элемента списка ftpClient.listNames() присвоить массиву строк resultList массив строк, возвращаемых ftpClient.listNames()"

Для отладки пробуйте также проверить на соединение с сервером, ошибки, давая маяки в onProgressUpdate, т.е.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
class ResultFtp extends AsyncTask<Void, String, Void>{
 
@Override
protected Void doInBackground(Void... params) {
 
FTPClient ftpClient = new FTPClient();
try {
ftpClient.connect("сервер");
 
publishProgress("FTP server reply code: "+String.valueOf(ftpClient.getReplyCode()));
 
ftpClient.login("логин, "пароль");
 
resultList = ftpClient.listNames();
 
ftpClient.disconnect();
 
} catch (IOException e) {
publishProgress("Error occured. "+e.toString());
}
 
return null;
}
 
@Override
protected void onProgressUpdate(String... progress) {
        Toast.makeText(getBaseContext(),
                progress[0],
                Toast.LENGTH_SHORT).show();
}
 
@Override
protected void onPostExecute(Void aVoid) {
    super.onPostExecute(aVoid);
    listView = (ListView) findViewById (R.id.listView);
    if  (resultList!=null){
        arrayAdapter = new ArrayAdapter (Main.this, android.R.layout.simple_list_item_1, resultList);
        listView.setAdapter(arrayAdapter);
    }
    else 
          Toast.makeText(getBaseContext(), "Storage String is null", Toast.LONG).show();
}
}
ну и дальше локализуйте ошибку....
1
0 / 0 / 0
Регистрация: 03.10.2014
Сообщений: 5
11.01.2015, 02:03  [ТС]
Спасибо большое за уделенное время. Я сделал как вы сказали, в итоге на экране выводилось сообщение ( код ответа 500) в wiki написано (500 - синтаксическая ошибка, команда не может быть интерпретирована (возможно она слишком длинна)) я , конечно не совсем понял, что это значит, но копавшись на stackoverflow, увидел метод ftpClient.enterLocalPassiveMode(), который уже не раз мне встречался , решил добавить и посмотреть, что получится, в итоге все заработало. Ошибка java.lang.NullPointerException: storage == null все еще осталась, завтра будут искать проблему. Простите, я многого пока не понимаю ))))), да и английский плохо знаю, только недавно начал изучать android.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.01.2015, 02:03
Помогаю со студенческими работами здесь

Подключение org.apache.commons.net.ftp.FTP
В Java совсем новичок, но есть задача переписать ftp-клиент с C# на Java. Подскажите пожалуйста (желательно по пунктам), что как подключить...

Apache commons net
скачал плагин для сетей отсюда http://commons.apache.org/proper/commons-net/download_net.cgi commons-net-1.4.1.zip...

Commons net ftp file download
Есть код, который делает download файла c ftp. Для локального фтп всё работает. Для удалённого сервера(доступ через интернет)...

Где находится org.apache.commons.io.FileUtils?
С данным языком программирования, как и с андроид студио раньше не имел никакого опыта, в виду обстоятельств потихоньку учу язык и для...

Передать команду работающему процессу через Apache commons exec
Имеется программа с гуи на свинге, которая запускает в параллельном потоке другую программу, вывод той программы перенаправляю в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru