我正试图在游戏商店中使用带有包名的jsoup来获取我的应用程序的版本名。在生成时,通过启用prograud生成apk。它在获取包名时引发错误。
我正在使用这段代码从play store.中检索版本名
@Override
protected String doInBackground(Void... params) {
String newVersion = null;
try {
Log.e("newVersion","newVersion");
newVersion = Jsoup.connect("https://play.google.com/store/apps/details?id=" + getActivity().getPackageName() + "&hl=it")
.timeout(30000)
.userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6")
.referrer("http://www.google.com")
.get()
.select("div[itemprop=softwareVersion]")
.first()
.ownText();
Log.e("Jsoup.connect","Jsoup.connect");
return newVersion;
} catch (Exception e) {
return newVersion;
}
}和我的错误是:
E/AndroidRuntime:致命异常: AsyncTask #1进程: com.iroid.android.gk4success_staffnurse,PID: 14673 java.lang.RuntimeException:在java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354) at java.util.concurrent.FutureTask.setException(FutureTask.java:223) at java.util.concurrent.FutureTask.run(FutureTask.java:242) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) at java.util.concurrent.ThreadPoolExecutor.runWorker执行doInBackground()时发生错误( java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) at java.lang.Thread.run(Thread.java:762)由: java.lang.ExceptionInInitializerError at org.a.b.i.a(未知来源) at org.a.b.i$b.(未知来源) at org.a.b.f$a.(不明来源)在org.a.b.f.(未知来源)在org.a.a.c..l.b(未知来源)org.a.c.l.a(未知来源)org.a.c.b.a(未知来源)org.a.c.f.a(未知来源)org.a.a(未知来源)org.a.b$C.E(未知来源)org.a.a.b.a(未知来源)( com.iroid.android.gk4success_staffnurse.f.a$9.doInBackground(Unknown源)在android.os.AsyncTask$2.call(AsyncTask.java:304),java.util.concurrent.FutureTask.run(FutureTask.java:237),android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243),java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133),java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) at java.util.Properties.load0(Properties.java:354) at java.util.Properties.load0(Properties.java:354) at java.util.Properties.load(Properties.java:342) at org.a.b.i.d(未知源)对空对象引用调用虚拟方法'int java.io.Reader.read(char[])的尝试。)(未知来源)在org.a.b.f(未知来源)在org.a.c.l.b(未知来源)在org.a.c.l.a(未知来源)在org.a.c.l.a(未知来源)在org.a.b.f(未知来源)在org.a.c.l.b(未知来源)在org.a.c.l.a(未知来源)(未知来源)在org.a.b.f(未知来源)在org.a.c.l.b(未知来源)在org.a.c.l.a(未知来源)在org.a.c.l.a(未知来源)在org.a.b.f(未知来源)在org.a.c.l.b(未知来源)在org.a.c.l.a(未知来源)在org.a.b.f(未知来源)在org.a.c.l.b(未知来源)在org.a.c.l.aA.c.b.a(未知来源)在org.a.c.f.a(未知来源)在org.a.a(未知来源)在org.a.b(未知来源)$C.E(未知来源)在org.a.a.b.a(未知来源)(未知来源)在com.iroid.android.gk4success_staffnurse.f.a$9.a(Unknown来源)在com.iroid.android.gk4success_staffnurse.f.a$9.Android.os.AsyncTask$2.call(AsyncTask.java:304),java.util.concurrent.FutureTask.run(FutureTask.java:237),android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243),java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133),java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133),java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607),java.lang.Thread.run(Thread.java:762)
有人能告诉我如何解决这个错误吗?
发布于 2017-11-27 06:16:59
这似乎是与Jsoup相关的Proguard错误。
在您的proguard文件中,尝试添加
-keeppackagenames org.jsoup.nodes或
-keep public class org.jsoup.** {
public *;
}发布于 2017-11-27 06:09:50
尝试将newVersion变量声明为空字符串。
String newVersion = "";https://stackoverflow.com/questions/47504569
复制相似问题