我正在开发一个应用程序,我希望网站中的某些数据显示在活动中。为此,我使用Jsoup来解析数据。但我收到错误:
org.jsoup.nodes.Document document = Jsoup.connect(url).get();
这是我下面的完整代码,我不知道我做错了什么......
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.select.Elements;
import android.os.AsyncTask;
import android.os.Bundle;
import android.provider.DocumentsContract.Document;
import android.app.Activity;
import android.view.Menu;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.TextView;
public class Events extends Activity
{
//WebView web1;
TextView t1;
String url="https://sites.google.com/site/holyfamilychurchpestomsagar/notices-for-the-week";
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_events);
t1=(TextView)findViewById(R.id.textView1);
Title t2=new Title();
t2.execute();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.events, menu);
return true;
}
private class Title extends AsyncTask<Void, Void, Void> {
Elements title;
String desc;
@Override
protected void onPreExecute()
{
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... params) {
try {
// Connect to the web site
org.jsoup.nodes.Document document = Jsoup.connect(url).get();
// Get the html document title
title = document.select("meta[name=title]");
desc = title.attr("content");
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result)
{
// Set title into TextView
t1.setText(desc);
}
}
}
答案 0 :(得分:0)
设备在线吗?好的,我确定你想到了;-)是你 确定它正是这条线?你在catch子句中运行了吗? 应用程序崩溃了吗?
使用jsoup时,应始终添加空指针检查, 因为当选择过程不成功时,方法会 返回null!
你可以发布你的堆栈跟踪吗?
好的,当应用程序崩溃时,我非常不知道它不是连接本身,而是下面的一行。添加对空指针的检查,或添加一个catch子句。