MinifiedEnabled在发布模式下中断应用程序

时间:2015-02-21 20:27:46

标签: android android-asynctask jsoup

我遇到的问题只出现在发布模式中。 当进程达到异步任务时,应用程序总是意外停止并出现此错误:

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选项,因为没有它,应用程序工作正常。

1 个答案:

答案 0 :(得分:0)

感谢两个睁开眼睛的人,我忘了编辑我的专业守卫规则 所以我刚刚添加了proguard-rules.pro

-keep public class org.jsoup.** {
public *;
}

Here where the solution is from