首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我正在"getActivity().getPackageName()“上崩溃,同时启用保护程序,但在不启用的情况下工作正常

我正在"getActivity().getPackageName()“上崩溃,同时启用保护程序,但在不启用的情况下工作正常
EN

Stack Overflow用户
提问于 2017-11-27 05:40:41
回答 2查看 243关注 0票数 1

我正试图在游戏商店中使用带有包名的jsoup来获取我的应用程序的版本名。在生成时,通过启用prograud生成apk。它在获取包名时引发错误。

我正在使用这段代码从play store.中检索版本名

代码语言:javascript
复制
@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)

有人能告诉我如何解决这个错误吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-27 06:16:59

这似乎是与Jsoup相关的Proguard错误。

在您的proguard文件中,尝试添加

代码语言:javascript
复制
-keeppackagenames org.jsoup.nodes

代码语言:javascript
复制
-keep public class org.jsoup.** {
public *;
}
票数 0
EN

Stack Overflow用户

发布于 2017-11-27 06:09:50

尝试将newVersion变量声明为空字符串。

代码语言:javascript
复制
String newVersion = "";
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47504569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档