我目前无法在物理设备(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时,这是一个相当常见的错误。困扰我的是,我无法在我的GalaxyS6上重新创建这个错误,所以我无法正确地修复它。下面是我的异步代码:
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编译的,作为最新版本),但是其他我知道有应用程序的人报告了这次崩溃。
这是我在这个阶段所拥有的唯一的异步方法,所以这让我相信这一定是崩溃发生的地方。任何关于修复的反馈或建议,以及如何验证修复将是很好的,谢谢。
如果你能解释为什么这在我的设备(S6)上完美无缺地工作,而在所有其他设备(L-01F,GalaxyTabA8.0,GalaxyS4,HTC )上却失败了,那就更好了。
发布于 2016-01-26 16:59:23
问题是ProGard,当您使用jsoup代码时。只要检查一下这个答案:https://stackoverflow.com/a/15199658/4848308
请检查这个问题,jsoup代码在Java中工作,但在中不起作用。
希望能帮上忙!
发布于 2016-01-26 16:53:00
我建议您使用Log.e()或Log.i()跟踪错误。你会得到它作为参考,你可以参考博客,我有参考AsyncTask
https://stackoverflow.com/questions/35018901
复制相似问题