简体   繁体   中英

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

I am trying to get version name of my app in play store using jsoup with package name. when in generate build apk by enabling prograud. It throws error while getting package name.

I am using this code to retrieve version name from 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;
    }
}

and my error is :

 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) 

Can anyone please tell how to solve this error ?

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

String newVersion = "";

This seems to be Jsoup error related to Proguard .

In your proguard file, try adding

-keeppackagenames org.jsoup.nodes

OR

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM