【发布时间】:2014-01-27 09:26:57
【问题描述】:
我正在尝试获取网页的 html 并使用 android 中的 jsoup 查找此页面中存在的所有链接。我已将 jsoup 添加为外部库。甚至尝试将其添加到 libs 文件夹中。但我收到“不幸的是应用程序停止”错误。谁能帮帮我..
这是我的 MainActivity java 代码。
package com.example.asyncjsoup;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView textv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textv=(TextView)findViewById(R.id.textView1);
new DownloadTask(textv).execute("http://www.karnatakatourism.org/");
//Elements links=(Elements)link;
//tv1.setText((CharSequence) b);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
这是我定义异步任务的类。
package com.example.asyncjsoup;
import java.io.IOException;
import android.annotation.SuppressLint;
import android.os.AsyncTask;
import android.widget.TextView;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
@SuppressLint("NewApi")
public class DownloadTask extends AsyncTask<String, Void, Elements>{
private TextView view;
public DownloadTask(TextView textvi)
{
this.view=textvi;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
//pDialog = new ProgressDialog(MainActivity.this);
// pDialog.setMessage("Loading...");
// pDialog.setIndeterminate(false);
// pDialog.setCancelable(false);
// pDialog.show();
}
@SuppressLint("NewApi")
protected Elements doInBackground(String... urls) {
String url = urls[0];
Document doc;
Elements links=null;
try {
//view.setText("this will be displayed in textview ");
doc = Jsoup.connect(url).get();
//view.setText("this wont be displayed in textview..i get unfortunately app stopped");
links = doc.select("a[href]");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return links;
}
protected void onPostExecute(Elements result) {
print("\nLinks: (%d)", result.size());
for (Element link : result) {
view.setText((CharSequence) link);
print(" * a: <%s> (%s)", link.attr("abs:href"), trim(link.text(), 35));
}
}
private static void print(String msg, Object... args) {
System.out.println(String.format(msg, args));
}
private static String trim(String s, int width) {
if (s.length() > width)
return s.substring(0, width-1) + ".";
else
return s;
}
}
我已将互联网权限添加到我的清单文件中。
这是我的日志..
01-27 09:35:12.303: E/Trace(1293): error opening trace file: No such file or directory (2)
01-27 09:35:12.303: W/Trace(1293): Unexpected value from nativeGetEnabledTags: 0
01-27 09:35:12.303: W/Trace(1293): Unexpected value from nativeGetEnabledTags: 0
01-27 09:35:12.303: W/Trace(1293): Unexpected value from nativeGetEnabledTags: 0
01-27 09:35:12.723: W/Trace(1293): Unexpected value from nativeGetEnabledTags: 0
01-27 09:35:12.763: W/Trace(1293): Unexpected value from nativeGetEnabledTags: 0
01-27 09:35:13.533: W/Trace(1293): Unexpected value from nativeGetEnabledTags: 0
01-27 09:35:13.533: W/Trace(1293): Unexpected value from nativeGetEnabledTags: 0
01-27 09:35:13.543: W/Trace(1293): Unexpected value from nativeGetEnabledTags: 0
01-27 09:35:13.573: W/Trace(1293): Unexpected value from nativeGetEnabledTags: 0
01-27 09:35:13.704: W/Trace(1293): Unexpected value from nativeGetEnabledTags: 0
01-27 09:35:13.713: W/Trace(1293): Unexpected value from nativeGetEnabledTags: 0
01-27 09:35:13.723: W/Trace(1293): Unexpected value from nativeGetEnabledTags: 0
01-27 09:35:13.863: W/Trace(1293): Unexpected value from nativeGetEnabledTags: 0
01-27 09:35:13.863: W/Trace(1293): Unexpected value from nativeGetEnabledTags: 0
01-27 09:35:13.875: W/Trace(1293): Unexpected value from nativeGetEnabledTags: 0
01-27 09:35:13.875: W/Trace(1293): Unexpected value from nativeGetEnabledTags: 0
01-27 09:35:13.875: W/Trace(1293): Unexpected value from nativeGetEnabledTags: 0
01-27 09:35:13.875: W/Trace(1293): Unexpected value from nativeGetEnabledTags: 0
01-27 09:35:13.913: D/gralloc_goldfish(1293): Emulator without GPU emulation detected.
01-27 09:35:13.993: W/Trace(1293): Unexpected value from nativeGetEnabledTags: 0
01-27 09:35:14.053: W/Trace(1293): Unexpected value from nativeGetEnabledTags: 0
01-27 09:35:15.704: D/dalvikvm(1293): GC_CONCURRENT freed 113K, 9% free 2653K/2888K, paused 78ms+4ms, total 143ms
01-27 09:35:15.704: D/dalvikvm(1293): WAIT_FOR_CONCURRENT_GC blocked 55ms
01-27 09:35:18.573: D/dalvikvm(1293): GC_FOR_ALLOC freed 333K, 19% free 2617K/3192K, paused 35ms, total 35ms
01-27 09:35:18.623: D/dalvikvm(1293): GC_FOR_ALLOC freed 118K, 17% free 2676K/3192K, paused 47ms, total 47ms
01-27 09:35:19.423: D/dalvikvm(1293): GC_CONCURRENT freed 268K, 13% free 2806K/3192K, paused 82ms+81ms, total 225ms
01-27 09:35:19.943: D/dalvikvm(1293): GC_CONCURRENT freed 99K, 7% free 3115K/3336K, paused 72ms+73ms, total 203ms
01-27 09:35:20.713: D/dalvikvm(1293): GC_CONCURRENT freed 287K, 12% free 3213K/3616K, paused 72ms+83ms, total 224ms
01-27 09:35:21.493: D/dalvikvm(1293): GC_CONCURRENT freed 224K, 10% free 3385K/3728K, paused 73ms+84ms, total 226ms
01-27 09:35:22.383: D/dalvikvm(1293): GC_CONCURRENT freed 247K, 10% free 3528K/3888K, paused 77ms+76ms, total 245ms
01-27 09:35:23.244: D/dalvikvm(1293): GC_CONCURRENT freed 249K, 10% free 3674K/4040K, paused 84ms+95ms, total 281ms
01-27 09:35:23.613: I/System.out(1293): Links: (152)
01-27 09:35:23.613: D/AndroidRuntime(1293): Shutting down VM
01-27 09:35:23.623: W/dalvikvm(1293): threadid=1: thread exiting with uncaught exception (group=0x40a70930)
01-27 09:35:23.644: E/AndroidRuntime(1293): FATAL EXCEPTION: main
01-27 09:35:23.644: E/AndroidRuntime(1293): java.lang.ClassCastException: org.jsoup.nodes.Element cannot be cast to java.lang.CharSequence
01-27 09:35:23.644: E/AndroidRuntime(1293): at com.example.asyncjsoup.DownloadTask.onPostExecute(DownloadTask.java:63)
01-27 09:35:23.644: E/AndroidRuntime(1293): at com.example.asyncjsoup.DownloadTask.onPostExecute(DownloadTask.java:1)
01-27 09:35:23.644: E/AndroidRuntime(1293): at android.os.AsyncTask.finish(AsyncTask.java:631)
01-27 09:35:23.644: E/AndroidRuntime(1293): at android.os.AsyncTask.access$600(AsyncTask.java:177)
01-27 09:35:23.644: E/AndroidRuntime(1293): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
01-27 09:35:23.644: E/AndroidRuntime(1293): at android.os.Handler.dispatchMessage(Handler.java:99)
01-27 09:35:23.644: E/AndroidRuntime(1293): at android.os.Looper.loop(Looper.java:137)
01-27 09:35:23.644: E/AndroidRuntime(1293): at android.app.ActivityThread.main(ActivityThread.java:5039)
01-27 09:35:23.644: E/AndroidRuntime(1293): at java.lang.reflect.Method.invokeNative(Native Method)
01-27 09:35:23.644: E/AndroidRuntime(1293): at java.lang.reflect.Method.invoke(Method.java:511)
01-27 09:35:23.644: E/AndroidRuntime(1293): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
01-27 09:35:23.644: E/AndroidRuntime(1293): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
01-27 09:35:23.644: E/AndroidRuntime(1293): at dalvik.system.NativeStart.main(Native Method)
01-27 09:35:28.113: I/Process(1293): Sending signal. PID: 1293 SIG: 9
01-27 10:02:31.024: E/Trace(1490): error opening trace file: No such file or directory (2)
01-27 10:02:31.024: W/Trace(1490): Unexpected value from nativeGetEnabledTags: 0
01-27 10:02:31.024: W/Trace(1490): Unexpected value from nativeGetEnabledTags: 0
01-27 10:02:31.024: W/Trace(1490): Unexpected value from nativeGetEnabledTags: 0
01-27 10:02:31.546: W/Trace(1490): Unexpected value from nativeGetEnabledTags: 0
01-27 10:02:31.583: W/Trace(1490): Unexpected value from nativeGetEnabledTags: 0
01-27 10:02:32.335: W/Trace(1490): Unexpected value from nativeGetEnabledTags: 0
01-27 10:02:32.335: W/Trace(1490): Unexpected value from nativeGetEnabledTags: 0
01-27 10:02:32.353: W/Trace(1490): Unexpected value from nativeGetEnabledTags: 0
01-27 10:02:32.374: W/Trace(1490): Unexpected value from nativeGetEnabledTags: 0
01-27 10:02:32.553: W/Trace(1490): Unexpected value from nativeGetEnabledTags: 0
01-27 10:02:32.563: W/Trace(1490): Unexpected value from nativeGetEnabledTags: 0
01-27 10:02:32.573: W/Trace(1490): Unexpected value from nativeGetEnabledTags: 0
01-27 10:02:32.768: W/Trace(1490): Unexpected value from nativeGetEnabledTags: 0
01-27 10:02:32.774: W/Trace(1490): Unexpected value from nativeGetEnabledTags: 0
01-27 10:02:32.804: W/Trace(1490): Unexpected value from nativeGetEnabledTags: 0
01-27 10:02:32.804: W/Trace(1490): Unexpected value from nativeGetEnabledTags: 0
01-27 10:02:32.813: W/Trace(1490): Unexpected value from nativeGetEnabledTags: 0
01-27 10:02:32.813: W/Trace(1490): Unexpected value from nativeGetEnabledTags: 0
01-27 10:02:32.833: D/gralloc_goldfish(1490): Emulator without GPU emulation detected.
01-27 10:02:32.943: W/Trace(1490): Unexpected value from nativeGetEnabledTags: 0
01-27 10:02:33.073: W/Trace(1490): Unexpected value from nativeGetEnabledTags: 0
01-27 10:02:34.673: D/dalvikvm(1490): GC_CONCURRENT freed 90K, 8% free 2782K/2996K, paused 85ms+6ms, total 151ms
01-27 10:02:37.123: W/Trace(1490): Unexpected value from nativeGetEnabledTags: 0
01-27 10:02:37.123: W/Trace(1490): Unexpected value from nativeGetEnabledTags: 0
01-27 10:02:37.283: W/Trace(1490): Unexpected value from nativeGetEnabledTags: 0
01-27 10:02:37.283: W/Trace(1490): Unexpected value from nativeGetEnabledTags: 0
01-27 10:02:37.703: D/dalvikvm(1490): GC_FOR_ALLOC freed 451K, 21% free 2677K/3348K, paused 38ms, total 38ms
01-27 10:02:38.513: D/dalvikvm(1490): GC_CONCURRENT freed 267K, 17% free 2800K/3348K, paused 76ms+76ms, total 210ms
01-27 10:02:39.064: D/dalvikvm(1490): GC_CONCURRENT freed 100K, 8% free 3093K/3348K, paused 76ms+84ms, total 220ms
01-27 10:02:39.773: D/dalvikvm(1490): GC_CONCURRENT freed 278K, 11% free 3207K/3600K, paused 76ms+78ms, total 227ms
01-27 10:02:40.573: D/dalvikvm(1490): GC_CONCURRENT freed 223K, 10% free 3378K/3716K, paused 78ms+89ms, total 236ms
01-27 10:02:41.393: D/dalvikvm(1490): GC_CONCURRENT freed 246K, 10% free 3522K/3884K, paused 82ms+90ms, total 258ms
01-27 10:02:42.083: D/dalvikvm(1490): GC_CONCURRENT freed 253K, 10% free 3665K/4036K, paused 76ms+80ms, total 247ms
01-27 10:02:42.443: I/System.out(1490): Links: (152)
01-27 10:02:42.443: D/AndroidRuntime(1490): Shutting down VM
01-27 10:02:42.443: W/dalvikvm(1490): threadid=1: thread exiting with uncaught exception (group=0x40a70930)
01-27 10:02:42.475: E/AndroidRuntime(1490): FATAL EXCEPTION: main
01-27 10:02:42.475: E/AndroidRuntime(1490): java.lang.ClassCastException: org.jsoup.nodes.Element cannot be cast to java.lang.CharSequence
01-27 10:02:42.475: E/AndroidRuntime(1490): at com.example.asyncjsoup.DownloadTask.onPostExecute(DownloadTask.java:63)
01-27 10:02:42.475: E/AndroidRuntime(1490): at com.example.asyncjsoup.DownloadTask.onPostExecute(DownloadTask.java:1)
01-27 10:02:42.475: E/AndroidRuntime(1490): at android.os.AsyncTask.finish(AsyncTask.java:631)
01-27 10:02:42.475: E/AndroidRuntime(1490): at android.os.AsyncTask.access$600(AsyncTask.java:177)
01-27 10:02:42.475: E/AndroidRuntime(1490): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
01-27 10:02:42.475: E/AndroidRuntime(1490): at android.os.Handler.dispatchMessage(Handler.java:99)
01-27 10:02:42.475: E/AndroidRuntime(1490): at android.os.Looper.loop(Looper.java:137)
01-27 10:02:42.475: E/AndroidRuntime(1490): at android.app.ActivityThread.main(ActivityThread.java:5039)
01-27 10:02:42.475: E/AndroidRuntime(1490): at java.lang.reflect.Method.invokeNative(Native Method)
01-27 10:02:42.475: E/AndroidRuntime(1490): at java.lang.reflect.Method.invoke(Method.java:511)
01-27 10:02:42.475: E/AndroidRuntime(1490): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
01-27 10:02:42.475: E/AndroidRuntime(1490): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
01-27 10:02:42.475: E/AndroidRuntime(1490): at dalvik.system.NativeStart.main(Native Method)
01-27 10:02:45.373: I/Process(1490): Sending signal. PID: 1490 SIG: 9
【问题讨论】:
-
你能发布 stacktrace/logcat 的输出吗?
-
你在AndroidManifest.xml中添加了android.permission.INTERNET吗?
-
@RomanBlack 我已授予互联网权限
-
您的日志输出中的这些行告诉实际错误 01-27 10:02:42.475: E/AndroidRuntime(1490): java.lang.ClassCastException: org.jsoup.nodes.Element cannot be cast到 java.lang.CharSequence 01-27 10:02:42.475: E/AndroidRuntime(1490): at com.example.asyncjsoup.DownloadTask.onPostExecute(DownloadTask.java:63) 01-27 10:02:42.475: E/ AndroidRuntime(1490):在 com.example.asyncjsoup.DownloadTask.onPostExecute(DownloadTask.java:1)
-
@Umar Qureshi:你能提出任何解决方案吗?