Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
GoldfxTrader
0 / 0 / 0
Регистрация: 20.10.2014
Сообщений: 15
#1

Правильный запрос и парсинг даннх - Программирование Android

20.10.2014, 14:17. Просмотров 791. Ответов 4
Метки нет (Все метки)

Здравствуйте. Столкнулся с проблемой на этапе запуска программы. В eclipce в логе выводит такой результат:
Кликните здесь для просмотра всего текста

10-20 05:52:27.700: W/dalvikvm(1857): threadid=1: thread exiting with uncaught exception (group=0xb3ac9ba8)
10-20 05:52:27.720: E/AndroidRuntime(1857): FATAL EXCEPTION: main
10-20 05:52:27.720: E/AndroidRuntime(1857): Process: com.example.rssnews, PID: 1857
10-20 05:52:27.720: E/AndroidRuntime(1857): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.rssnews/com.example.rssnews.MainActivity}: java.lang.RuntimeException: android.os.NetworkOnMainThreadException
10-20 05:52:27.720: E/AndroidRuntime(1857): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
10-20 05:52:27.720: E/AndroidRuntime(1857): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
10-20 05:52:27.720: E/AndroidRuntime(1857): at android.app.ActivityThread.access$800(ActivityThread.java:135)
10-20 05:52:27.720: E/AndroidRuntime(1857): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
10-20 05:52:27.720: E/AndroidRuntime(1857): at android.os.Handler.dispatchMessage(Handler.java:102)
10-20 05:52:27.720: E/AndroidRuntime(1857): at android.os.Looper.loop(Looper.java:136)
10-20 05:52:27.720: E/AndroidRuntime(1857): at android.app.ActivityThread.main(ActivityThread.java:5017)
10-20 05:52:27.720: E/AndroidRuntime(1857): at java.lang.reflect.Method.invokeNative(Native Method)
10-20 05:52:27.720: E/AndroidRuntime(1857): at java.lang.reflect.Method.invoke(Method.java:515)
10-20 05:52:27.720: E/AndroidRuntime(1857): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
10-20 05:52:27.720: E/AndroidRuntime(1857): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
10-20 05:52:27.720: E/AndroidRuntime(1857): at dalvik.system.NativeStart.main(Native Method)
10-20 05:52:27.720: E/AndroidRuntime(1857): Caused by: java.lang.RuntimeException: android.os.NetworkOnMainThreadException
10-20 05:52:27.720: E/AndroidRuntime(1857): at com.example.rssnews.NewParser.parse(NewParser.java:74)
10-20 05:52:27.720: E/AndroidRuntime(1857): at com.example.rssnews.MainActivity.onCreate(MainActivity.java:35)
10-20 05:52:27.720: E/AndroidRuntime(1857): at android.app.Activity.performCreate(Activity.java:5231)
10-20 05:52:27.720: E/AndroidRuntime(1857): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
10-20 05:52:27.720: E/AndroidRuntime(1857): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
10-20 05:52:27.720: E/AndroidRuntime(1857): ... 11 more
10-20 05:52:27.720: E/AndroidRuntime(1857): Caused by: android.os.NetworkOnMainThreadException
10-20 05:52:27.720: E/AndroidRuntime(1857): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1145)
10-20 05:52:27.720: E/AndroidRuntime(1857): at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
10-20 05:52:27.720: E/AndroidRuntime(1857): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
10-20 05:52:27.720: E/AndroidRuntime(1857): at java.net.InetAddress.getAllByName(InetAddress.java:214)
10-20 05:52:27.720: E/AndroidRuntime(1857): at com.android.okhttp.internal.Dns$1.getAllByName(Dns.java:28)
10-20 05:52:27.720: E/AndroidRuntime(1857): at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:216)
10-20 05:52:27.720: E/AndroidRuntime(1857): at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:122)
10-20 05:52:27.720: E/AndroidRuntime(1857): at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:292)
10-20 05:52:27.720: E/AndroidRuntime(1857): at com.android.okhttp.internal.http.HttpEngine.sendSocketRequest(HttpEngine.java:255)
10-20 05:52:27.720: E/AndroidRuntime(1857): at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:206)
10-20 05:52:27.720: E/AndroidRuntime(1857): at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:345)
10-20 05:52:27.720: E/AndroidRuntime(1857): at com.android.okhttp.internal.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:296)
10-20 05:52:27.720: E/AndroidRuntime(1857): at com.android.okhttp.internal.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:179)
10-20 05:52:27.720: E/AndroidRuntime(1857): at com.example.rssnews.NewParser.getInputStream(NewParser.java:30)
10-20 05:52:27.720: E/AndroidRuntime(1857): at com.example.rssnews.NewParser.parse(NewParser.java:72)
10-20 05:52:27.720: E/AndroidRuntime(1857): ... 15 more


На экране эмулятора появляется сообщение: "В приложении ..... произошла ошибка"
Подскажите как отловить ошибку.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2014, 14:17
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Правильный запрос и парсинг даннх (Программирование Android):

Правильный SQL запрос для реализации фильтра списка записей
Привет всем! Всю голову уже сломал - то ли через запрос нельзя такое реализовать и нужно в джава коде как-то прописывать, то ли я...

Правильный парсинг файла
Здравствуйте! Искал по форуму решение проблемы, так и не нашел. В общем проблема такая: Циклом foreach парсится файл. ...

Правильный парсинг на php
Пример разбираем чисто теоретический, для понимания как правильно поступать в той или иной ситуации. Какой вариант вы посоветуете? Или...

Правильный парсинг Period
Доброго времени суток. Ребят подскажите как правильно парсить Period. Вылетает ошика: java.time.format.DateTimeParseException: Text cannot...

Правильный парсинг html в Qt
Здравствуйте. Необходимо парсить html средствами Qt. Я это делаю следующим образом: QWebPage WebPage; ...

JSON.net, правильный парсинг структуры
Здравствуйте. API сервер выдает примерно такую структуру { "mashine" : { "<Тут ид машинки>" : { "address" : "тут...

4
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
20.10.2014, 15:52 #2
Лучший ответ Сообщение было отмечено GoldfxTrader как решение

Решение

Цитата Сообщение от GoldfxTrader Посмотреть сообщение
10-20 05:52:27.720: E/AndroidRuntime(1857): Caused by: android.os.NetworkOnMainThreadException
вот она. Нельзя работать с интернетом в UI потоке. Используйте async task/loader/thread.
1
GoldfxTrader
0 / 0 / 0
Регистрация: 20.10.2014
Сообщений: 15
21.10.2014, 19:17  [ТС] #3
Поделитесь опытом написания программы для обработки RSS ленты новостей.

Нашел описание создания списка с картинками в элементе списка http://www.javacodegeeks.com/2012/10...image-and.html
В примере данные берутся с xml файла. Мне нужно на выходе получить подобного вида список, только в виде новостей с RSS ленты.

У кого есть идеи реализации? Нашел много вариантов XML-парсеров, но определится не могу как наиболее проще и понятнее будет реализовать данный список.
Кто может помочь в реализации? Может совет дельный кто даст.
Заранее благодарен всем!!!

Добавлено через 19 часов 27 минут
Подскажите как скормить на вход парсеру url на xml - который нужно разобрать?
Java только начинаю изучать, так что не судите строго....


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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
 
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
 
import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
 
 
// URL rssUrl = new URL("http://cbc.ca/cmlink/rss-topstories");
 
 
public class MainActivity extends Activity {
    
    final String LOG_TAG = "myLogs";
        
    /** Called when the activity is first created. */
      @Override
      public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        String tmp = "";
 
        try {
          XmlPullParser xpp = prepareXpp();
 
          while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) {
            switch (xpp.getEventType()) {
            // начало документа
            case XmlPullParser.START_DOCUMENT:
              Log.d(LOG_TAG, "START_DOCUMENT");
              break;
            // начало тэга
            case XmlPullParser.START_TAG:
              Log.d(LOG_TAG, "START_TAG: name = " + xpp.getName()
                  + ", depth = " + xpp.getDepth() + ", attrCount = "
                  + xpp.getAttributeCount());
              tmp = "";
              for (int i = 0; i < xpp.getAttributeCount(); i++) {
                tmp = tmp + xpp.getAttributeName(i) + " = "
                    + xpp.getAttributeValue(i) + ", ";
              }
              if (!TextUtils.isEmpty(tmp))
                Log.d(LOG_TAG, "Attributes: " + tmp);
              break;
            // конец тэга
            case XmlPullParser.END_TAG:
              Log.d(LOG_TAG, "END_TAG: name = " + xpp.getName());
              break;
            // содержимое тэга
            case XmlPullParser.TEXT:
              Log.d(LOG_TAG, "text = " + xpp.getText());
              break;
 
            default:
              break;
            }
            // следующий элемент
            xpp.next();
          }
          Log.d(LOG_TAG, "END_DOCUMENT");
 
        } catch (XmlPullParserException e) {
          e.printStackTrace();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
 
      
      public InputStream getInputStream(URL url) {
          try {
            return url.openConnection().getInputStream();
          } catch (IOException e) {
            return null;
          }
        }
      
    public  XmlPullParser prepareXpp() throws XmlPullParserException {
            // получаем фабрику
            XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
            // включаем поддержку namespace (по умолчанию выключена)
            factory.setNamespaceAware(true);
            // создаем парсер
            XmlPullParser xpp = factory.newPullParser();
            // даем парсеру на вход Reader
           //..........................................................
        //    xpp.setInput(getInputStream(url), "UTF_8");
            
            return xpp;
          }   
}

В итоге нужно реализовать просмотр списка новостей с картинкой.
0
GoldfxTrader
0 / 0 / 0
Регистрация: 20.10.2014
Сообщений: 15
04.11.2014, 17:58  [ТС] #4
Здравствуйте. Подскажите как правильно получить данные с XML на основе примера с урока 79, если есть такая структура xml документа:

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
****
<item cbc:type="story" cbc:deptid="2.633" cbc:syndicate="true">
<title>
<![CDATA[
Election day in America: 7 things to watch in midterms
]]>
</title>
<link>
[url]http://www.cbc.ca/news/world/election-day-in-america-7-things-to-watch-in-midterms-1.2822002?cmp=rss[/url]
</link>
<guid isPermaLink="false">1.2822002</guid>
<pubDate>Tue, 4 Nov 2014 05:00:00 EST</pubDate>
<author>Meagan Fitzpatrick</author>
<category>News/World</category>
<description>
<![CDATA[
<img title='U.S. President Barack Obama takes part in early voting at a polling station in Chicago, Illinois October 20, 2014. His party is at risk of losing control of the Senate today as Americans go to the polls in this year's midterm election.' height='259' alt='USA-OBAMA/' width='460' src='http://i.cbc.ca/1.2822057.1415036841!/fileImage/httpImage/image.jpg_gen/derivatives/16x9_460/usa-obama.jpg' /> <p>Americans will be marking ballots today for their representatives in Congress, in their state legislatures and governor's mansion, in their mayor's office and city halls and for many other elected offices. Here are a few things to watch for as the results come in tonight.</p>
]]>
</description>
</item>
***
с данного xml документа мне необходимы данные: title, pubDate, author, и изображение с description

Я только начинаю изучать программирование под Android так что не судите строго. Желательно разъяснить более подробно, т.к. многих нюансов не знаю.
Заранее спасибо за ответ!
0
GoldfxTrader
0 / 0 / 0
Регистрация: 20.10.2014
Сообщений: 15
05.11.2014, 18:51  [ТС] #5
Как разобрать секцию XML description:

XML
1
2
3
4
5
<description>
<![CDATA[
<img title='Justin Bourque, 24, of Moncton, could be facing three consecutive life sentences, with no chance of parole for 75 years for the fatal shooting of three RCMP officers. But some experts are split as to whether his actions should be considered terrorist acts.' height='259' alt='Justin Bourque' width='460' src='http://i.cbc.ca/1.2668162.1414706182!/fileImage/httpImage/image.jpg_gen/derivatives/16x9_460/justin-bourque.jpg' /> <p>Justin Bourque has been sentenced to 75 years in prison with no chance of parole for killing three RCMP officers and wounding two others, a New Brunswick judge has ruled.</p>
]]>
</description>
с которой нужно получить изображение ссылка на которое размещена в теге? Если кто сможет разьяснить - предоставлю исходный код парсера.
0
05.11.2014, 18:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.11.2014, 18:51
Привет! Вот еще темы с решениями:

Правильный парсинг ссылок со страницы в WebBrowser
Вот мой фигокод: Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Proccessing.Click Dim url As String =...

Правильный запрос
В общем вот такая вот беда. Написал авторизацию , вроде бы работает корректно , но не в этом суть . Имеется таблица users(поля...

Правильный запрос
Здравствуйте Такое дело, в базе имеется огромная таблица. Данные &gt; 10000. Нужно значение одного поля перенести в другое чуток изменив,...

Правильный запрос
Приветствую всех! Мне здесь в другой теме когда-то писали, что при использовании PDO:: prepare и PDOStatement::execute напрямую...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru