我遇到的问题只出现在发布模式中。 当进程达到异步任务时,应用程序总是意外停止并出现此错误:
02-21 21:07:02.913 13084-13409/com.dimtion.app E/AndroidRuntime﹕ FATAL EXCEPTION: AsyncTask #2
Process: com.dimtion.app, PID: 13084
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:300)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
Caused by: java.lang.NoClassDefFoundError: a/a/b/m
at a.a.b.f.<init>(Unknown Source)
at a.a.b.e.<init>(Unknown Source)
at a.a.c.di.b(Unknown Source)
at a.a.c.di.a(Unknown Source)
at a.a.c.b.a(Unknown Source)
at a.a.c.ae.a(Unknown Source)
at a.a.a.a.a(Unknown Source)
at a.a.a.j.e(Unknown Source)
at com.dimtion.app.g.a(Unknown Source)
at com.dimtion.app.g.doInBackground(Unknown Source)
at android.os.AsyncTask$2.call(AsyncTask.java:288)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
在doInBackground()
方法中,只有一个Jsoup连接和解析:
try {
Connection.Response loginPage = Jsoup.connect(loginUrl)
.method(Connection.Method.POST)
.followRedirects(true)
.cookies(coockies)
.data("login", username)
.data("password", password)
.data("token", token)
.data("returnurl", url_app)
.execute();
Document document = loginPage.parse();
Element logoutElement = document.body().select("a[href=?do=logout]").first();
logoutElement.attr("href"); // If this fails, you're not connected
} catch (IOException e) {
this.error = 1;
return false;
} catch (NullPointerException e) {
this.error = 3;
return false;
}
return true;
问题在于,因为代码是压缩的,所以没有办法设置断点来调试代码。但我知道这是来自MinifiedEnabled选项,因为没有它,应用程序工作正常。
答案 0 :(得分:0)
感谢两个睁开眼睛的人,我忘了编辑我的专业守卫规则
所以我刚刚添加了proguard-rules.pro
:
-keep public class org.jsoup.** {
public *;
}