Форум программистов, компьютерный форум CyberForum.ru

Ругается на finally - Android

Войти
Регистрация
Восстановить пароль
 
FazonFix
0 / 0 / 0
Регистрация: 18.01.2014
Сообщений: 26
01.03.2014, 15:34     Ругается на finally #1
Здрасьте. Работаю с сетью. Стянул с офф. сайта пример для получания stream-потока данных с сервера.

Тупо скопировал код и вставил в исходник. Компилятор ругается на блок finally. В чём проблема? Заранее спасибо.

Код текстом:
Java
1
2
3
4
5
6
7
8
9
URL url = new URL("http://www.android.com/");
           HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
           try {
             InputStream in = new BufferedInputStream(urlConnection.getInputStream());
             readStream(in);
            finally {
             urlConnection.disconnect();
           }
         }
Код скриншотом:
s006. radikal .ru/i213/1403/70/185bc0d6d700.png (пробелы убрать)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
 Аватар для YuraAAA
1563 / 1305 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
01.03.2014, 15:43     Ругается на finally #2
FazonFix, попробуйте добавить catch (IOException)
angryrobot
Командир зеленых роботов
 Аватар для angryrobot
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 564
01.03.2014, 16:03     Ругается на finally #3
Цитата Сообщение от FazonFix Посмотреть сообщение
В чём проблема?
Похоже что вы забыли фигурную закрывающую скобку перед finally
FazonFix
0 / 0 / 0
Регистрация: 18.01.2014
Сообщений: 26
01.03.2014, 17:16  [ТС]     Ругается на finally #4
Немного переделал код:
Java
1
2
3
4
5
6
7
8
9
10
11
try {
        URL url = new URL("http://www.android.com/");
           HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
          
             InputStream in = new BufferedInputStream(urlConnection.getInputStream());
             readStream(in); 
             urlConnection.disconnect();    
         }
             catch (IOException e) {
             
           }
Но в приложении пишет, мол приложение было остановлено:
s005. radikal. ru/i212/1403/56/884c810b429c.png (пробелы убрать)

Почему так?
YuraAAA
 Аватар для YuraAAA
1563 / 1305 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
01.03.2014, 17:23     Ругается на finally #5
FazonFix, тут нет экстрасенсов. Покажите стэк трейс
FazonFix
0 / 0 / 0
Регистрация: 18.01.2014
Сообщений: 26
01.03.2014, 18:02  [ТС]     Ругается на finally #6
Ты не про LogCat? Тут так-то дофига отчётов (не только ошибок):

03-01 08:59:42.740: V/WebViewChromium(885): Binding Chromium to the background looper Looper{b4cca560}
03-01 08:59:42.750: I/chromium(885): [INFO:library_loader_hooks.cc(112)] Chromium logging enabled: level = 0, default verbosity = 0
03-01 08:59:42.750: I/BrowserProcessMain(885): Initializing chromium process, renderers=0
03-01 08:59:42.880: W/chromium(885): [WARNINGroxy_service.cc(888)] PAC support disabled because there is no system implementation
03-01 08:59:42.910: E/chromium(885): [ERROR:gl_surface_egl.cc(153)] No suitable EGL configs found.
03-01 08:59:42.910: E/chromium(885): [ERROR:gl_surface_egl.cc(620)] GLSurfaceEGL::InitializeOneOff failed.
03-01 08:59:42.910: E/chromium(885): [ERROR:gl_surface_egl.cc(153)] No suitable EGL configs found.
03-01 08:59:42.910: E/chromium(885): [ERROR:gl_surface_egl.cc(620)] GLSurfaceEGL::InitializeOneOff failed.
03-01 08:59:42.910: E/chromium(885): [ERROR:gpu_info_collector.cc(86)] gfx::GLSurface::InitializeOneOff() failed
03-01 08:59:43.440: D/AndroidRuntime(885): Shutting down VM
03-01 08:59:43.440: W/dalvikvm(885): threadid=1: thread exiting with uncaught exception (group=0xb4a23b90)
03-01 08:59:43.520: D/dalvikvm(885): GC_FOR_ALLOC freed 191K, 9% free 2992K/3264K, paused 39ms, total 41ms
03-01 08:59:43.520: E/AndroidRuntime(885): FATAL EXCEPTION: main
03-01 08:59:43.520: E/AndroidRuntime(885): Process: com.example.web_content4, PID: 885
03-01 08:59:43.520: E/AndroidRuntime(885): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.web_content4/com.example.web_content4.MainActivity}: android.os.NetworkOnMainThreadException
03-01 08:59:43.520: E/AndroidRuntime(885): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2176)
03-01 08:59:43.520: E/AndroidRuntime(885): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226)
03-01 08:59:43.520: E/AndroidRuntime(885): at android.app.ActivityThread.access$700(ActivityThread.java:135)
03-01 08:59:43.520: E/AndroidRuntime(885): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397)
03-01 08:59:43.520: E/AndroidRuntime(885): at android.os.Handler.dispatchMessage(Handler.java:102)
03-01 08:59:43.520: E/AndroidRuntime(885): at android.os.Looper.loop(Looper.java:137)
03-01 08:59:43.520: E/AndroidRuntime(885): at android.app.ActivityThread.main(ActivityThread.java:4998)
03-01 08:59:43.520: E/AndroidRuntime(885): at java.lang.reflect.Method.invokeNative(Native Method)
03-01 08:59:43.520: E/AndroidRuntime(885): at java.lang.reflect.Method.invoke(Method.java:515)
03-01 08:59:43.520: E/AndroidRuntime(885): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
03-01 08:59:43.520: E/AndroidRuntime(885): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
03-01 08:59:43.520: E/AndroidRuntime(885): at dalvik.system.NativeStart.main(Native Method)
03-01 08:59:43.520: E/AndroidRuntime(885): Caused by: android.os.NetworkOnMainThreadException
03-01 08:59:43.520: E/AndroidRuntime(885): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1145)
03-01 08:59:43.520: E/AndroidRuntime(885): at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
03-01 08:59:43.520: E/AndroidRuntime(885): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
03-01 08:59:43.520: E/AndroidRuntime(885): at java.net.InetAddress.getAllByName(InetAddress.java:214)
03-01 08:59:43.520: E/AndroidRuntime(885): at com.android.okhttp.internal.Dns$1.getAllByName(Dns.java:28)
03-01 08:59:43.520: E/AndroidRuntime(885): at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:216)
03-01 08:59:43.520: E/AndroidRuntime(885): at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:122)
03-01 08:59:43.520: E/AndroidRuntime(885): at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:292)
03-01 08:59:43.520: E/AndroidRuntime(885): at com.android.okhttp.internal.http.HttpEngine.sendSocketRequest(HttpEngine.java:255)
03-01 08:59:43.520: E/AndroidRuntime(885): at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:206)
03-01 08:59:43.520: E/AndroidRuntime(885): at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:345)
03-01 08:59:43.520: E/AndroidRuntime(885): at com.android.okhttp.internal.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:296)
03-01 08:59:43.520: E/AndroidRuntime(885): at com.android.okhttp.internal.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:179)
03-01 08:59:43.520: E/AndroidRuntime(885): at com.example.web_content4.MainActivity.onCreate(MainActivity.java:36)
03-01 08:59:43.520: E/AndroidRuntime(885): at android.app.Activity.performCreate(Activity.java:5243)
03-01 08:59:43.520: E/AndroidRuntime(885): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
03-01 08:59:43.520: E/AndroidRuntime(885): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2140)
03-01 08:59:43.520: E/AndroidRuntime(885): ... 11 more
YuraAAA
 Аватар для YuraAAA
1563 / 1305 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
01.03.2014, 18:22     Ругается на finally #7
Цитата Сообщение от FazonFix Посмотреть сообщение
Caused by: android.os.NetworkOnMainThreadException
нельзя ломиться в нет из главного потока
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.03.2014, 05:04     Ругается на finally
Еще ссылки по теме:

Блок try.finally в VBA? VBA
Ругается на FragmentTransaction Android
Антивирус AVG ругается на приложение перепакованное apktool Android
Блоки try , catch и finally C#

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

Или воспользуйтесь поиском по форуму:
FazonFix
0 / 0 / 0
Регистрация: 18.01.2014
Сообщений: 26
02.03.2014, 05:04  [ТС]     Ругается на finally #8
А как тогда выходить в интернет из дочернего потока? Буду благодарен.
Yandex
Объявления
02.03.2014, 05:04     Ругается на finally
Ответ Создать тему
Опции темы

Текущее время: 17:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru