Android应用程序 - Java.Net.SocketException:没有路由到主机

问题描述:

我正在创建一个Android应用程序,它从媒体服务器流视频。我使用我的频道的列表视图和一个switch语句来控制视频。在switch语句中有一些简单的javascript代码例如:Android应用程序 - Java.Net.SocketException:没有路由到主机

webView.loadUrl("javascript:void(jwplayer().playlistItem(2))"); 

这个工作正常,但随机抛出这个错误很多。我找不到原因,我试过不等待视频加载和加载新视频,有时会导致它,有时它不会,我只选择了4个视频,并在更改前观看了5秒钟,这有时候导致它,有时不。我的logcat显示如下:

03-20 14:19:29.710: D/dalvikvm(14679): GC_CONCURRENT freed 426K, 8% free 7600K/8199K, paused 3ms+3ms 
03-20 14:20:32.490: D/dalvikvm(14679): threadid=18: still suspended after undo (sc=1 dc=1) 
03-20 14:20:32.540: D/dalvikvm(14679): threadid=18: still suspended after undo (sc=1 dc=1) 
03-20 14:20:32.550: D/dalvikvm(14679): GC_CONCURRENT freed 426K, 8% free 7599K/8199K, paused 4ms+3ms 
03-20 14:20:37.220: W/System.err(14679): java.net.SocketException: No route to host 
03-20 14:20:37.220: W/System.err(14679): at org.apache.harmony.luni.platform.OSNetworkSystem.connect(Native Method) 
03-20 14:20:37.220: W/System.err(14679): at dalvik.system.BlockGuard$WrappedNetworkSystem.connect(BlockGuard.java:369) 
03-20 14:20:37.220: W/System.err(14679): at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:208) 
03-20 14:20:37.220: W/System.err(14679): at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:431) 
03-20 14:20:37.220: W/System.err(14679): at java.net.Socket.connect(Socket.java:901) 
03-20 14:20:37.220: W/System.err(14679): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:75) 
03-20 14:20:37.220: W/System.err(14679): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:48) 
03-20 14:20:37.220: W/System.err(14679): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection$Address.connect(HttpConnection.java:304) 
03-20 14:20:37.220: W/System.err(14679): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionPool.get(HttpConnectionPool.java:89) 
03-20 14:20:37.220: W/System.err(14679): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getHttpConnect ion(HttpURLConnectionImpl.java:292) 
03-20 14:20:37.220: W/System.err(14679): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.makeConnection(HttpURLConnectionImpl.java:274) 
03-20 14:20:37.220: W/System.err(14679): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:217) 
03-20 14:20:37.230: W/System.err(14679): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:624) 
03-20 14:20:37.230: W/System.err(14679): at dalvik.system.NativeStart.run(Native Method) 
03-20 14:20:37.230: W/System.err(14679): at dalvik.system.NativeStart.run(Native Method) 

您是否在视图中启用了javasctript?

webView.getSettings().setJavaScriptEnabled(true); 

此外,您应该考虑在javascript语句的末尾添加冒号。

webView.loadUrl("javascript:void(jwplayer().playlistItem(2));"); 

如果无事可做,尝试捕捉异常,并尝试一定的次数,还有在Android的网页视图和httpclients一些不稳定性。

+0

是的,我已启用了JavaScript并启用了Internet权限。 干杯,改变了这一点,但还没有整理出来。我想这就是剩下要做的,试着在某个地方抓住它,谢谢你的帮助。 你知道任何记录webviews和httpclients不稳定性的地方吗? – user1281053 2012-03-20 14:47:53

+0

这将是很难收集他们全​​部。 Stack Over Flow引用了他们所有的想法,但在整个论坛中传播。对不起,这个模糊的答案,但有时你需要修补SDK .. – Snicolas 2012-03-20 14:56:28