有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

java.lang.RuntimeException: An error occured while executing doInBackground()
    at 安卓.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 安卓.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 安卓.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时,这是一个非常常见的错误。让我困惑的是,我无法在我的星系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) 个答案

  1. # 2 楼答案

    我建议您应该使用日志跟踪错误。e()或Log。i()。你会得到它作为参考,你可以参考博客,我已经参考了AsyncTask