簡體   English   中英

啟用proguard時,我在“ getActivity()。getPackageName()”上崩潰,但在未啟用的情況下工作正常

[英]I am getting crash on “getActivity().getPackageName() ” while enabling proguard but working fine without enabling

我正在嘗試使用帶有包名稱的jsoup獲取Play商店中我的應用程序的版本名稱。 通過啟用prograud生成build apk。 獲取程序包名稱時拋出錯誤。

我正在使用此代碼從Play商店中檢索版本名稱。

@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: FATAL EXCEPTION: AsyncTask #1 Process: com.iroid.android.gk4success_staffnurse, PID: 14673 java.lang.RuntimeException: An error occurred while executing doInBackground() at android.os.AsyncTask$3.done(AsyncTask.java:318) at 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(ThreadPoolExecutor.java:1133) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) at java.lang.Thread.run(Thread.java:762) Caused by: java.lang.ExceptionInInitializerError at org.abia(Unknown Source) at org.abi$b.<clinit>(Unknown Source) at org.abf$a.<init>(Unknown Source) at org.abf<init>(Unknown Source) at org.aclb(Unknown Source) at org.acla(Unknown Source) at org.acba(Unknown Source) at org.acfa(Unknown Source) at org.aaaa(Unknown Source) at org.aab$ce(Unknown Source) at org.aaba(Unknown Source) at com.iroid.android.gk4success_staffnurse.fa$9.a(Unknown Source) at com.iroid.android.gk4success_staffnurse.fa$9.doInBackground(Unknown Source) at android.os.AsyncTask$2.call(AsyncTask.java:304) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) at java.lang.Thread.run(Thread.java:762) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.io.Reader.read(char[])' on a null object reference at java.util.Properties$LineReader.readLine(Properties.java:435) at java.util.Properties.load0(Properties.java:354) at java.util.Properties.load(Properties.java:342) at org.abid(Unknown Source) at org.abi<clinit>(Unknown Source) at org.abia(Unknown Source) at org.abi$b.<clinit>(Unknown Source) at org.abf$a.<init>(Unknown Source) at org.abf<init>(Unknown Source) at org.aclb(Unknown Source) at org.acla(Unknown Source) at org.acba(Unknown Source) at org.acfa(Unknown Source) at org.aaaa(Unknown Source) at org.aab$ce(Unknown Source) at org.aaba(Unknown Source) at com.iroid.android.gk4success_staffnurse.fa$9.a(Unknown Source) at com.iroid.android.gk4success_staffnurse.fa$9.doInBackground(Unknown Source) at android.os.AsyncTask$2.call(AsyncTask.java:304) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) at java.lang.Thread.run(Thread.java:762) 

誰能告訴我如何解決這個錯誤?

嘗試將newVersion變量聲明為空字符串。

String newVersion = "";

這似乎是與Proguard相關的Jsoup錯誤。

在您的proguard文件中,嘗試添加

-keeppackagenames org.jsoup.nodes

要么

-keep public class org.jsoup.** {
public *;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM