【问题标题】:Signed apk crashed using jsoup but debug does not使用 jsoup 签名的 apk 崩溃,但调试没有
【发布时间】:2017-11-20 02:48:13
【问题描述】:

可以解决我的问题吗? 我使用 Jsoup 从 Play 商店进行版本检查。当我从 android studio 作为调试 apk 运行我的应用程序时。它运作良好。但是当生成签名 Apk 时。运行此代码并显示消息“不幸的是应用程序已停止”时它崩溃了。有没有人帮助我。我给你看我的代码。提前致谢。

 private void getCurrentVersion(){
        try {
            currentVersion = getPackageManager().getPackageInfo(getPackageName(), 0).versionName;
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
        new GetLatestVersion().execute();
    }

public class GetLatestVersion extends AsyncTask<String, String, String> {

    @Override
    protected String doInBackground(String... params) {
        try {
            latestVersion = Jsoup.connect("https://play.google.com/store/apps/details?id=" + MainActivity.this.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();
            return latestVersion;
        }catch (Exception e){
            return latestVersion;
        }
    }

    @Override
    protected void onPostExecute(String version) {
        super.onPostExecute(version);
        if(version!=null) {
            if (!currentVersion.equals(latestVersion)){
                showUpdateDialog();
            }
        }
        else
            dialog.dismiss();

    }
    public boolean isFinished() {
        return true;
    }
}

private void showUpdateDialog(){
    final AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("A New Update is Available");
    builder.setPositiveButton("Update", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse
                    ("market://details?id=com.kjsdeveloper.sattagamblers")));
            dialog.dismiss();
        }
    });

    builder.setNegativeButton("Later", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialog.dismiss();
        }
    });

    builder.setCancelable(false);
    dialog = builder.show();
}

【问题讨论】:

标签: android jsoup


【解决方案1】:

在位于 Gradle 脚本的 proguard-rules.pro 文件中添加 proguard 规则 :

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-27
    • 2021-01-13
    • 1970-01-01
    • 2021-02-06
    • 2020-12-21
    • 2013-11-17
    • 2017-10-17
    相关资源
    最近更新 更多