Работа с FTP. Вылетает ошибка при подключении

Ответить
Руслан
Сообщения: 4
Зарегистрирован: 10 июн 2015, 11:00

Работа с FTP. Вылетает ошибка при подключении

Сообщение Руслан » 10 июн 2015, 11:36

Добрый день. Думал инета будет достаточно для изучения java и android studio, оказалось не хватает опыта и документации. Нужна ваша помощь. Задача нужно подключиться к ftp серверу и прочитать там файл. Воспользовался библиотеками org.apache.commons.net.ftp.FTPClient и org.apache.commons.net.ftp.FTPClientConfig. Вот фрагмент кода, он прописан в процедуре создания активити(onCreate):
FTPClient mFTP = new FTPClient();
try {
FTPClientConfig config = new FTPClientConfig(FTPClientConfig.SYST_UNIX);
mFTP.configure(config);

mFTP.connect("95.68.246.3");
// mFTP.login("пользователь", "пароль");

// mFTP.enterLocalPassiveMode();
//mFTP.setFileType(FTP.BINARY_FILE_TYPE);
// mFTP.logout();
// mFTP.disconnect();
}
catch (SocketException e) {e.printStackTrace();}
catch (IOException e) {
e.printStackTrace();
}

Вылетает в ошибку(ошибка указана на картинке) на строчке mFTP.connect("95.68.246.3");

Вот вообщем права на доступ к инету прописал в манифесте, выглядит строчка так: <uses-permission android:name="android.permission.INTERNET" />
Возможность подключения к серваку проверил, через браузер к фтп подключется. Версия андройда на телефоне на котором тестирую прогу api 19: android 4.4.2. Телефон к инету подключен(попробовал в нем полазить по инету, лазиет). Облазил инет, ничего полезного не нашёл. Ребят помогите советом, куда копать? Может у кого есть работающий исходник по работе с фтп для примера? Кто сталкивался с ФТП? Помогите форсировать проблему, где я ошибся или что еще не донастроил в манифесте? Не знаю, хелп ребят
Вложения
сообщение об ошибке
сообщение об ошибке
Безымянный.png (214.69 КБ) 6240 просмотров

Руслан
Сообщения: 4
Зарегистрирован: 10 июн 2015, 11:00

Re: Работа с FTP. Вылетает ошибка при подключении

Сообщение Руслан » 10 июн 2015, 11:43

А и еще пробывал получить файл через URL. Тоже тчетно. ВЫлетает с такой же ошибкой при получения потока

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Работа с FTP. Вылетает ошибка при подключении

Сообщение klblk » 10 июн 2015, 11:49

Нельзя работать с сетью в UI потоке. И ошибка это не картинка на экране эмулятора, а вполне понятный стектрейс в Logcat.

Руслан
Сообщения: 4
Зарегистрирован: 10 июн 2015, 11:00

Re: Работа с FTP. Вылетает ошибка при подключении

Сообщение Руслан » 10 июн 2015, 11:52

"Нельзя работать с сетью в UI потоке" это ты про подключение через URL или FTPClient? Не могу нащупать логики.
Вот лог. Что по нему можно сказать?
06-10 04:49:27.441 11841-11841/com.vincent_torgoviypredstavitel.idiatullinrm.vincent E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.vincent_torgoviypredstavitel.idiatullinrm.vincent, PID: 11841
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.vincent_torgoviypredstavitel.idiatullinrm.vincent/com.vincent_torgoviypredstavitel.idiatullinrm.vincent.MainActivity}: android.os.NetworkOnMainThreadException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
at android.app.ActivityThread.access$800(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5001)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.os.NetworkOnMainThreadException
at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1145)
at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)
at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
at libcore.io.IoBridge.connect(IoBridge.java:112)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
at java.net.Socket.connect(Socket.java:843)
at org.apache.commons.net.SocketClient.connect(SocketClient.java:182)
at org.apache.commons.net.SocketClient.connect(SocketClient.java:203)
at org.apache.commons.net.SocketClient.connect(SocketClient.java:296)
at com.vincent_torgoviypredstavitel.idiatullinrm.vincent.MainActivity.onCreate(MainActivity.java:36)
at android.app.Activity.performCreate(Activity.java:5231)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
            at android.app.ActivityThread.access$800(ActivityThread.java:135)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5001)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
            at dalvik.system.NativeStart.main(Native Method)

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Работа с FTP. Вылетает ошибка при подключении

Сообщение doter.ua » 10 июн 2015, 12:14

Руслан писал(а):"Нельзя работать с сетью в UI потоке" это ты про подключение через URL или FTPClient? Не могу нащупать логики.
Вот лог. Что по нему можно сказать?
Можно сказать, что вы не читаете советы. NetworkOnMainThreadException
AsyncTask в помощь
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Работа с FTP. Вылетает ошибка при подключении

Сообщение klblk » 10 июн 2015, 13:26

Руслан писал(а):"Нельзя работать с сетью в UI потоке" это ты про подключение через URL или FTPClient? Не могу нащупать логики.
Вот лог. Что по нему можно сказать?
Что происходит: "NetworkOnMainThreadException".
Где происходит: "at com.vincent_torgoviypredstavitel.idiatullinrm.vincent.MainActivity.onCreate(MainActivity.java:36)

А какая разница URL или FTP? и то и другое является работой с сетью. Перенесите работу с сетью в другой поток. Выше уже порекомендовали AsyncTask.

Ответить