Asynctask运行时错误异常

时间:2014-01-25 20:47:17

标签: java android eclipse android-asynctask

我的android应用程序停止工作。这是我的asynctask类代码

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日志,所以我只是粘贴它):

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

谢谢你们 欢呼声

4 个答案:

答案 0 :(得分:0)

似乎Android无法找到org.jsoup.Jsoup - 请确保将其放在正确的位置,以便随应用程序(即libs文件夹)传输

答案 1 :(得分:0)

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

答案 2 :(得分:0)

如果您正在使用Gradle,请确保您具有正确的依赖关系设置,否则请确保将JSoup jar放在编译的位置(大多数IDE中的libs目录,尽管我认为它是eclipse上的lib)。确保您的应用程序设置还指定您的应用程序使用依赖项,它应该包含在编译

答案 3 :(得分:0)

如果这是在Eclipse中,请复制libs目录中的Jsoup.jar,如果libs目录不存在,请自行创建。

右键单击您的项目 - &gt;构建路径 - &gt;配置构建路径 - &gt;库标签 - &gt;添加jar - &gt; (在你的libs中找到它)并添加