异步运行时错误异常



我的Android应用程序停止工作。

package com.example.hay;
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import android.content.Context;
import android.os.AsyncTask;
import android.widget.EditText;
public class AsyncLoadData extends AsyncTask<String, Void, String> {
private Context mContext;
private ILoadDataListener mListener;
public AsyncLoadData(Context context, ILoadDataListener listener) {
    this.mContext = context;
    this.mListener = listener;
}
@Override
protected String doInBackground(String... params) {
   try {
    String url = params[0];
    Document doc;   
    doc = Jsoup.connect(url).get();
    String title = doc.text();
    return title;
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    return null;
}
}
@Override
protected void onPostExecute(String result) {
    mListener.complete(result);
}
@Override
protected void onPreExecute() {
    mListener.loading();
}
public interface ILoadDataListener {
    void loading();
    void complete(String result);
}
}

看来我的todo在后台方法中有问题。logcat(我不知道如何发布logcat log,所以我会粘贴它):

01-25 20:38:52.449: E/AndroidRuntime(878): FATAL EXCEPTION: AsyncTask #1
01-25 20:38:52.449: E/AndroidRuntime(878): java.lang.RuntimeException: An error occured while executing doInBackground()
01-25 20:38:52.449: E/AndroidRuntime(878):  at android.os.AsyncTask$3.done(AsyncTask.java:299)
01-25 20:38:52.449: E/AndroidRuntime(878):  at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
01-25 20:38:52.449: E/AndroidRuntime(878):  at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
01-25 20:38:52.449: E/AndroidRuntime(878):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
01-25 20:38:52.449: E/AndroidRuntime(878):  at java.util.concurrent.FutureTask.run(FutureTask.java:137)
01-25 20:38:52.449: E/AndroidRuntime(878):  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
01-25 20:38:52.449: E/AndroidRuntime(878):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
01-25 20:38:52.449: E/AndroidRuntime(878):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
01-25 20:38:52.449: E/AndroidRuntime(878):  at java.lang.Thread.run(Thread.java:856)
01-25 20:38:52.449: E/AndroidRuntime(878): Caused by: java.lang.NoClassDefFoundError: org.jsoup.Jsoup
01-25 20:38:52.449: E/AndroidRuntime(878):  at com.example.hay.AsyncLoadData.doInBackground(AsyncLoadData.java:26)
01-25 20:38:52.449: E/AndroidRuntime(878):  at com.example.hay.AsyncLoadData.doInBackground(AsyncLoadData.java:1)
01-25 20:38:52.449: E/AndroidRuntime(878):  at android.os.AsyncTask$2.call(AsyncTask.java:287)
01-25 20:38:52.449: E/AndroidRuntime(878):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
01-25 20:38:52.449: E/AndroidRuntime(878):  ... 5 more

谢谢大家欢呼

看起来Android无法找到org.jsoup.Jsoup-确保将其放在正确的位置,以便它通过应用程序传输(即,您的libs文件夹)

确保启用JSOUP JAR的导出。您可以在项目的属性中执行此操作。

如果您使用的是gradle,请确保已设置正确的依赖关系,否则请确保将jsoup jar放在它被编译的位置中我认为这是Eclipse上的Lib)。确保您的应用程序设置还指定您的应用程序使用依赖项,并且应包含在compile

如果是在eclipse中,请在您的libs目录中复制jsoup.jar,如果Libs Directory不存在,请自己制作。

右键单击您的项目 ->构建路径 ->配置构建路径 ->库选项卡 ->添加jar->(在libs中找到它)并添加

最新更新