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

Apache commons net Ftp в android

10.01.2015, 16:25. Показов 2579. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru