Proguard, Minify, Jsoup and Stack Trace



好吧,我已经做了几天了,所以我知道问题出在哪里,原因是什么,解决方案是什么。我需要的是一些简单的技术细节,以便实现解决方案。

我在发布版本中收到一条"不幸已停止"消息,但在调试版本中没有出现。这种情况发生在我的S4 mini和三星RTL设备上。调试版本适用于所有这些设备以及Genymotion模拟器。当我点击激活Jsoup.connect.的菜单选项时,使用Jsoup会出现错误

该问题很可能是由迷你程序进程中的ProGuard引起的。它很可能涉及Proguard缩小一些所需的J汤库例程。如果我将minimyEnabled设置为false,则发布程序确实会运行,但我更愿意在必要时取消应用minimy。

解决方案是禁用所有Jsoup的minimy,因为它无论如何都很小,但最好只针对某些部分。我已经读到,通过堆栈跟踪,我可以确定哪些特定的J汤模块需要从minimy中删除,而不是缩小整个库。

所以我需要知道一些简单的、技术性的东西。。。

  1. proguard语句的语法是什么,以避免缩小org.jsoup.*
  2. 此语句要添加到哪个文件中,proguard-android.txtproguard-rules.pro
  3. 如何启动堆栈跟踪?特别是,我需要能够在运行该程序的发布版本时做到这一点。这一定很简单,但我的搜索并没有找到一个循序渐进的过程

这些似乎都是非常基本的问题。事实上,我在每个论坛或博客上读到的关于这些主题的每一篇文章都假设你知道这些事情。对于堆栈跟踪,我需要详细的步骤。希望你能帮忙。

编辑:好的,取得了一点进展。我找到了-s或--stacktrace选项,以及在IDE中设置它的位置。然而,当我运行程序时,我不知道在哪里可以找到真正的堆栈。

编辑#2取得更好的进展。发现这个例子-keep class org.joda.time.{;}**,所以我用jsoup代替了joda,将其放入proguard-rules.pro文件中,我的发布版本现在运行:(

我仍然希望在堆叠比赛中得到一些帮助。我在各种博客和论坛中找到的都是对已发布应用程序进行远程堆栈跟踪的方法。我想简单地在安卓工作室中查看stacktrace。

Mick

将此行添加到proguard-rules.pro文件:

-keeppackagenames org.jsoup.nodes

编辑:

你也可以试试这个:

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

但没有必要保留所有东西。CCD_ 2就足够了。

相关内容

  • 没有找到相关文章

最新更新