我是 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/