使用 Jsoup 获取 html 页面时,Android 应用程序已停止工作

标签 android jsoup

我是 Android 应用开发的新手。我的 Android 应用程序显示“不幸的是,AppTest 已停止。”当我尝试使用以下代码通过 Jsoup 连接到 Internet 时。

我已经为 AndroidManifest.xml 添加了 Internet 权限。 当我只使用离线 html 进行测试时,Jsoup 工作正常,例如 <p>Nay</p> . 我的 Android 手机是完全可用的互联网连接。怎么了?

    Document doc;
    try {
        // need http protocol
        doc = Jsoup.connect("http://google.com").get();

        // get page title
        String title = doc.title();
        psi.setText(title);
    } catch (IOException e) {
        e.printStackTrace();
    }

最佳答案

感谢大家,但是答案和建议对我帮助不大。在犯了很多错误之后,我找到了解决方案。当遇到这个问题时,我想发布我的答案以帮助其他人。

Jsoup 似乎在 UI 线程之外的另一个线程中运行。因此,您只需使用 AsyncTask 创建另一个线程即可使用 Jsoup,如下所示。

class GetHtmlwithJsoup extends AsyncTask<String, Integer, String>
protected String doInBackground(String... param) {  
   try {
     //Jsoup Connecting and Getting html page code at here
   } 
   catch (TwitterException e) {
     return "Failed to get";
   }
}

@Override
protected void onProgressUpdate(Integer... values) { // 
   super.onProgressUpdate(values);
   // Not used in my case
}

@Override
protected void onPostExecute(String result) { // 
   //show Jsoup HTML Ouput to UI widgets code at here...  
}
}

关于使用 Jsoup 获取 html 页面时,Android 应用程序已停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17283508/

相关文章:

java - 在实时数据库中添加数据但添加了错误的子项

android - location.getLocation() 启用 GPS 但无法到达卫星时

java - 解析必须以特定字符串 jsoup 开头和结尾的 css 类名

java - 如何使用 Jsoup 和 Gson 提取 JSON 字段

JAVA应用程序和ECLIPSE无法连接到互联网

java - 使用 Jsoup/Selenium 从网站获取 "::before"标签后的数字数据

android - 防止Android上的屏幕旋转

java - 将 Actionscript/Flex Air Android 项目与 Java Android 项目相结合

Android:Jsoup.select ("article")从 html 文件获取元素时不工作

android - 如何在android上选择当前主题