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

Java RuntimeException doInBackground()Android应用程序错误与Jsoup,java,android,exception,android-asynctask,jsoup,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(

我目前无法在我的物理设备(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)
^^调用方法

    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);
    }
}
私有类selectRepsBasedOnZipCode扩展异步任务{
受保护的ArrayList doInBackground(字符串…参数){
ArrayList UserRepsBasedOnZip=新建ArrayList();
字符串firstPartOfURL=”https://www.opencongress.org/search/result?q=";
字符串lastPartOfURL=“&search\u people=1”;
字符串urlToParse=firstPartOfURL+params[0]+lastPartOfURL;
试一试{
Document doc=Jsoup.connect(urlToParse.get();
元素内容=doc.getElementsByClass(“名称”);
for(元素名称:content){
UserRepsBasedOnZip.add(name.childNode(0.toString().trim());
}
}捕获(例外情况除外){
返回UserRepsBasedOnZip;
}
返回UserRepsBasedOnZip;
}
@凌驾
受保护的void onPostExecute(ArrayList UserRepsBasedOnZip){
完成构建LocalRepPage(UserRepsBasedOnZip);
}
}
我正在使用JSoup来做一些这方面的工作。正如我所说,我无法重新创建该问题(该程序是从我设备上的Android Studio编译而成的最新版本),但我所知道的其他应用程序报告了此崩溃。
这是我在这一阶段事件中使用的唯一异步方法,因此我相信这一定是崩溃发生的地方。任何关于修复以及如何验证修复的反馈或建议都非常好,谢谢。

+如果您能解释为什么这在我的设备(S6)上可以完美地工作,但在所有其他设备(L-01F、Galaxy Tab A 8.0、Galaxy S4、HTC One)上失败,那么您将获得额外奖励。

我建议您使用Log.e()或Log.i()跟踪错误。你会得到它作为参考你可以参考我的博客当你发布jsoup代码时问题是ProGard。请检查以下答案:

也检查一下这个问题


我希望它有帮助

这是一个部署的应用程序,据我所知,部署的应用程序中不应该有这样的日志记录。堆栈跟踪是来自Android控制台的崩溃报告,因此像这样的本地日志记录不会有帮助。g2o,这似乎是一个可能的问题。我会在我可以测试的时候更新,谢谢。完美答案g2o!我从Android Studio在我的手机上部署了发布版本,它崩溃了。。。然后将-keep for jsoup添加到proguard文件中,效果非常好!附加参考:
    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);
    }
}