我正在尝试在我的Android应用程序中使用Jsoup 1.6.0,但由于某种原因它崩溃了。我简化了我的代码:
import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;
public class JsoupTestActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
try {
Document d = Jsoup.connect("http://www.google.com").get();
} catch (Exception e) {
Toast t = Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG);
t.show();
}
}
}
但是每当我在手机上(在USB调试模式下)或在模拟器上运行上述内容时,我都会收到一条消息,表明我的程序意外崩溃了 - 甚至没有发现错误。如果我用
替换try块的内容 Jsoup.connect("http://www.google.com");
程序工作正常,所以似乎get()方法导致问题......
仅供参考,在我的AndroidManifest.xml中我确实包含了
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
在正确的位置,而R.layout.main是ADT在创建新项目时生成的默认布局。我正在为此项目使用Android API级别7。我如何让它工作?
答案 0 :(得分:0)
尝试下载新版本的Jsoup并将jsoup-1.6.x.jar粘贴到项目的 libs 文件夹中。
答案 1 :(得分:0)
你不能从UI线程做网络操作,所以你应该从你的onCreate()中取出JSoup.connect()并使用ASyncTask