2012-02-20 14 views
0

안녕하세요. 벌집에서 RSS 리더를 사용하려고하지만 다음 코드 샘플을 실행하고 실행하면 (충돌이 시작되어 충돌이 발생합니다). 이것은 충돌 (디버깅을 통해)이 발생하는 코드이다xmlreader가 포함 된 SAX 파서가 벌집 모양으로 충돌합니다.

public List<Article> getLatestArticles(String feedUrl) { 
    Log.v("getLatestArticles","entering"+ feedUrl); 
    URL url = null; 
    try { 


     SAXParserFactory spf = SAXParserFactory.newInstance(); 
     Log.v("getLatestArticles","made instance"); 
     SAXParser sp = spf.newSAXParser(); 
     XMLReader xr = sp.getXMLReader(); 
     Log.v("getLatestArticles","made a bunch of stuff"); 

     url = new URL(feedUrl); 
     Log.v("getLatestArticles","made URL"); 
     xr.setContentHandler(this); 
     Log.v("getLatestArticles","RSS is the following" + this.toString()); 
     Log.v("getLatestArticles","RSS is the following"); 
     xr.parse(new InputSource(url.openStream())); 
     Log.v("getLatestArticles","made parsing possible"); 

충돌이 발생 xr.parse (InputSource의 새로운 (url.openStream())); 또한 url.openStream() 때문에 충돌이 발생하는 것으로 나타났습니다. 이것을 실행하려고해도 오류가 발생합니다.

02-20 17:17:56.566: D/AndroidRuntime(449): Shutting down VM 
02-20 17:17:56.566: W/dalvikvm(449): threadid=1: thread exiting with uncaught exception (group=0x40014760) 
02-20 17:17:56.586: E/AndroidRuntime(449): FATAL EXCEPTION: main 
02-20 17:17:56.586: E/AndroidRuntime(449): android.os.NetworkOnMainThreadException 
02-20 17:17:56.586: E/AndroidRuntime(449): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1077) 
02-20 17:17:56.586: E/AndroidRuntime(449): at java.net.InetAddress.lookupHostByName(InetAddress.java:481) 
02-20 17:17:56.586: E/AndroidRuntime(449): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:281) 
02-20 17:17:56.586: E/AndroidRuntime(449): at java.net.InetAddress.getAllByName(InetAddress.java:249) 
02-20 17:17:56.586: E/AndroidRuntime(449): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:69) 
02-20 17:17:56.586: E/AndroidRuntime(449): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:48) 
02-20 17:17:56.586: E/AndroidRuntime(449): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection$Address.connect(HttpConnection.java:304) 
02-20 17:17:56.586: E/AndroidRuntime(449): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionPool.get(HttpConnectionPool.java:89) 
02-20 17:17:56.586: E/AndroidRuntime(449): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getHttpConnection(HttpURLConnectionImpl.java:292) 
02-20 17:17:56.586: E/AndroidRuntime(449): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.makeConnection(HttpURLConnectionImpl.java:274) 
02-20 17:17:56.586: E/AndroidRuntime(449): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.retrieveResponse(HttpURLConnectionImpl.java:1038) 
02-20 17:17:56.586: E/AndroidRuntime(449): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:523) 
02-20 17:17:56.586: E/AndroidRuntime(449): at java.net.URL.openStream(URL.java:645) 
02-20 17:17:56.586: E/AndroidRuntime(449): at com.tmm.android.rssreader.util.RSSHandler.getLatestArticles(RSSHandler.java:166) 
02-20 17:17:56.586: E/AndroidRuntime(449): at com.tmm.android.rssreader.reader.RssReader.getLatestRssFeed(RssReader.java:44) 
02-20 17:17:56.586: E/AndroidRuntime(449): at com.tmm.android.rssreader.reader.NewspaperFragment.onCreateView(NewspaperFragment.java:38) 
02-20 17:17:56.586: E/AndroidRuntime(449): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:730) 
02-20 17:17:56.586: E/AndroidRuntime(449): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:921) 
02-20 17:17:56.586: E/AndroidRuntime(449): at android.app.BackStackRecord.run(BackStackRecord.java:578) 
02-20 17:17:56.586: E/AndroidRuntime(449): at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1221) 
02-20 17:17:56.586: E/AndroidRuntime(449): at android.app.FragmentManagerImpl$1.run(FragmentManager.java:375) 
02-20 17:17:56.586: E/AndroidRuntime(449): at android.os.Handler.handleCallback(Handler.java:587) 
02-20 17:17:56.586: E/AndroidRuntime(449): at android.os.Handler.dispatchMessage(Handler.java:92) 
02-20 17:17:56.586: E/AndroidRuntime(449): at android.os.Looper.loop(Looper.java:126) 
02-20 17:17:56.586: E/AndroidRuntime(449): at android.app.ActivityThread.main(ActivityThread.java:3997) 
02-20 17:17:56.586: E/AndroidRuntime(449): at java.lang.reflect.Method.invokeNative(Native Method) 
02-20 17:17:56.586: E/AndroidRuntime(449): at java.lang.reflect.Method.invoke(Method.java:491) 
02-20 17:17:56.586: E/AndroidRuntime(449): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 
02-20 17:17:56.586: E/AndroidRuntime(449): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 
02-20 17:17:56.586: E/AndroidRuntime(449): at dalvik.system.NativeStart.main(Native Method) 

사람이 문제로 실행 또는 이와 유사한가 발생했습니다 :

그리고 여기 아래는 디버그 정보를 내가받을 수있다? 감사합니다

답변

0

장치가 http 연결을 설정할 수 없습니다. 이로 인해 데이터를 가져 오지 못합니다. SAX 파서가 실패하지는 않습니다. 나는 당신이 UI 스레드에서 HTTP 호출에 액세스하려고하기 때문에 이것이 옳다고 생각됩니다. 이 주제에 대한 흥미로운 내용은 blog입니다.

+0

벌집과 함께 발생하는 것으로 밝혀졌습니다. 나는 이것에 대한 예로써 다음과 같이 답했다. http : //stackoverflow.com/questions/6275681/android-3-0-honeycomb-problem-in-parsing-rss-feed – Letheone1

0

에뮬레이터 (코드를 실행 한 곳)에서 feedUrl에 액세스 할 수 있는지 확인하기 만하면 어떤 이유로 URL에 연결할 수없는 것처럼 보입니다.

관련 문제