android - 使用 jsoup 签名的 apk 崩溃了,但调试却没有崩溃

标签 android jsoup

能解决我的问题吗? 我使用 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();
}

最佳答案

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

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

关于android - 使用 jsoup 签名的 apk 崩溃了,但调试却没有崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44604252/

相关文章:

java - 使用 Jsoup 抓取网页

java - Jsoup - 从隐藏代码的 html url 中读取

ProgressDialog 显示在屏幕上时的 Android 多任务处理

android - 我的 Activity 没有被 action_view 调用

java - 使用 jsoup 登录 espn Fantasy Football League 并抓取统计数据

java - 使用 jsoup java 从文本中检索 HTML 结构

java - API 对于浏览器返回 200,对于 Jsoup 返回 500

Android Wear键盘输入法

android - 使用 AnimationDrawable 时出现内存不足错误

java - 带图标的抽屉导航 ListAdapter