在Android中遇到JSoup问题(用于解析HTML)

时间:2010-12-08 01:21:22

标签: java html android jsoup

我正在开发一个小测试应用程序,从网上抓取一些数据(在本例中为XKCD漫画)并将其显示在手机上。这是我第一次涉足Android编程,我对Java不太熟悉,所以我不是太野心勃勃。我成功地用Java编写了一个程序,它在Android上执行了我想要做的同样的功能,并且工作得非常好,但是我的一些代码在Java中起作用,导致Android中的一个强制关闭。特别是这个小代码块:

try {
        home = Jsoup.connect("http://www.xkcd.com").get();
        Log.i("connect to home","completed");
    } catch (IOException e) {
        Log.i("connect to home","failed");
    }

每次运行时,我都会在日志中看到“失败”消息。如果我删除了我的代码的那一部分,我的应用程序运行得很漂亮所以我知道错误必须在那里。如果你想知道的话,“home”被定义为我的代码中的其他文档。在Java中运行良好,我也很奇怪,在Eclipse开发Android时,它强迫我用try-catch块来包围该语句,但在Java中我不需要try-catch。任何想法为什么这不起作用?如果您需要更多信息或更多我的代码,我会提供它(尽管我试图提供完整的故事)。

非常感谢您的帮助

1 个答案:

答案 0 :(得分:1)

  

每次运行时,我都会在日志中看到“失败”消息。

记录异常e。它包含有关如何/为何/失败的信息。你绝不应该在没有充分理由的情况下压制异常(即你确切知道你在做什么)。

  

我也很奇怪,在Eclipse开发Android时,它强迫我用try-catch块包围该语句,但在Java中我不需要try-catch。

可能你已经在方法上有throws IOException,如下所示:

public void foo() throws IOException {
    Document document = Jsoup.connect(url).get();
    // ...
}

然后你确实不需要把它放在try-catch中。

另见: