使用Jsoup的Java RuntimeException doInBackground()Android应用程序错误

时间:2016-01-26 16:33:16

标签: java android exception android-asynctask jsoup

我目前无法在物理设备上重新创建此错误(S6)。事情对我来说很好,我所做的改变似乎并没有解决这个问题。我有以下错误:

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:818)
Caused by: java.lang.ExceptionInInitializerError
    at a.a.b.m.a(Unknown Source)
    at a.a.b.p.<clinit>(Unknown Source)
    at a.a.b.g.<init>(Unknown Source)
    at a.a.b.f.<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.f.e(Unknown Source)
    at a.a.a.b.a(Unknown Source)
    at com.airborne.grgr4.f.a(Unknown Source)
    at com.airborne.grgr4.f.doInBackground(Unknown Source)
    at android.os.AsyncTask$2.call(AsyncTask.java:288)
    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    ... 4 more
Caused by: java.lang.NullPointerException: in == null
    at java.util.Properties.load(Properties.java:246)
    at a.a.b.m.d(Unknown Source)
    at a.a.b.m.<clinit>(Unknown Source)

我知道当尝试从后台线程或其他线程滥用更新UI时,这是一个非常常见的错误。搞砸了我的是我无法在我的Galaxy S6上重新创建这个错误,所以我无法正确修复它。这是我的异步代码:

new selectRepsBasedOnZipCode().execute(zipCode);

^^通话方法。

    private class selectRepsBasedOnZipCode extends AsyncTask<String, Void, ArrayList<String>> {

    protected ArrayList<String> doInBackground(String... params) {
        ArrayList<String> UserRepsBasedOnZip = new ArrayList<String>();

        String firstPartOfURL = "https://www.opencongress.org/search/result?q=";
        String lastPartOfURL = "&search_people=1";
        String urlToParse = firstPartOfURL + params[0] + lastPartOfURL;

        try {
            Document doc = Jsoup.connect(urlToParse).get();
            Elements content = doc.getElementsByClass("name");

            for (Element name : content) {
                UserRepsBasedOnZip.add(name.childNode(0).toString().trim());
            }
        } catch (Exception ex) {
            return UserRepsBasedOnZip;
        }
        return UserRepsBasedOnZip;
    }

    @Override
    protected void onPostExecute(ArrayList<String> UserRepsBasedOnZip) {
        finishBuildingLocalRepPage(UserRepsBasedOnZip);
    }
}

我正在使用JSoup来完成这项工作。正如我所说,我无法重新创建问题(程序是从我的设备上的Android Studio编译为最新版本),但我知道其他人有应用程序报告此崩溃。
这是我在这个事件阶段中唯一的异步方法,所以这让我相信这一定是崩溃发生的地方。任何关于修复的反馈或建议以及如何验证修复都会很棒,谢谢 +如果你可以在我的设备(S6)上解释为什么它可以完美地工作但是在所有其他设备(L-01F,Galaxy Tab A 8.0,Galaxy S4,HTC One)上都失败了,你可以获得奖励。

2 个答案:

答案 0 :(得分:1)

问题是ProGard,当你模仿jsoup代码时。只需查看以下答案:https://stackoverflow.com/a/15199658/4848308

同时检查此问题jsoup code works in Java but not in Android- Nullpointerexception

我希望它有所帮助!!!

答案 1 :(得分:-2)

我建议您使用Log.e()或Log.i()跟踪错误。您将获得它以供参考,您可以参考我引用AsyncTask

的博客