【问题标题】:Android App - Java.Net.SocketException: No route to hostAndroid 应用程序 - Java.Net.SocketException:没有路由到主机
【发布时间】:2012-03-20 22:01:09
【问题描述】:

我正在创建一个从媒体服务器流式传输视频的 Android 应用。我正在为我的频道使用列表视图,并使用 switch 语句来控制视频。在 switch 语句中有一些简单的 javascript 代码,例如:

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)

【问题讨论】:

    标签: java android


    【解决方案1】:

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

    webView.getSettings().setJavaScriptEnabled(true);
    

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

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

    如果没事,尝试捕获异常,尝试一定次数,android中的webviews和httpclients有一些不稳定。

    【讨论】:

    • 是的,我启用了 javascript 并启用了 Internet 权限。干杯,改变了,但还没有整理出来。我想这就是剩下要做的,试着在某个地方抓住它,谢谢你的帮助。你知道哪里有记录 webviews 和 httpclients 不稳定性的地方吗?
    • 很难把它们全部收集起来。 Stack Over Flow 引用了我认为的所有内容,但遍布整个论坛。很抱歉这个模糊的答案,但有时你需要修补 SDK..
    猜你喜欢
    • 2018-02-07
    • 2011-12-15
    • 1970-01-01
    • 1970-01-01
    • 2013-01-12
    • 1970-01-01
    • 2019-03-08
    • 2017-08-03
    相关资源
    最近更新 更多