我的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
谢谢你们 欢呼声
答案 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中找到它)并添加