android - 有什么方法可以指示 Proguard (在 Android 上)保存中间 jar 吗?

标签 android ant jar proguard obfuscation

虽然遇到了可怕的 dex 方法限制错误问题,但我一直在尝试找到解决该问题的快速解决方案。使用 proguard 后,我的 apk 被缩小了 13k 个方法,其中大部分来 self 使用的库。这是构建过程的(稍作修改的)相关输出。

    -obfuscate:
        [mkdir] Created dir: /bin/proguard
          [jar] Building jar: /bin/proguard/original.jar
     [proguard] ProGuard, version 5.0
     [proguard] Reading input...

     [proguard] Reading program jar [/libs/kryo-2.24.0.jar]
     [proguard] Reading program jar [/libs/jackson-databind-2.1.1.jar]
     [proguard] Reading program jar [libs/okhttp-1.1.0.jar]
     [proguard] Reading program jar [/libs/realm-0.72.0.jar]
     [proguard] Reading program jar [/libs/tape-1.1.0.jar]
     [proguard] Reading program jar [/libs/google-play-services.jar]
     [proguard] Reading program jar [/libs/AudienceNetwork.jar]

 [proguard] Initializing...
 [proguard] Ignoring unused library classes...
 [proguard]   Original number of library classes: 7170
 [proguard]   Final number of library classes:    1712
 [proguard] Printing kept classes, fields, and methods...
 [proguard] Shrinking...

有没有什么方法可以指示 Proguard for Android 保存中间 jar(这些库的缩小版本,适合我的代码需求,具有完全使用的功能集,仅此而已),就在缩小之后,但在它们获得之前由 aapt 打包成一个巨大的 blob ?

最佳答案

您可以创建自定义的缩小版本的 Google Play 服务,这可能足以避免 65K 方法 ID 限制。我的presentation on creating smaller apps来自 Droidcon London 2014 的文档包含一些可能的 ProGuard 配置来创建这样一个缩小的库。

关于android - 有什么方法可以指示 Proguard (在 Android 上)保存中间 jar 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26823075/

相关文章:

java - TabHost 出现水平滚动问题

android - 尝试在 Ubuntu 13.04 上运行 Phonegap

java - Jarsigner 覆盖 manifest.mf,创建小程序权限 catch-22

Java 与 Maven : How to make Module B depend on jar of module A?

java - 我们如何在intellij idea项目中找到孤立的 jar

java - 我的 2d Android 游戏遇到问题

java - 单击操作栏图标时弹出菜单

android - 移动应用程序使用哪些标准通信协议(protocol)?

mysql - 如何通过单个 ANT 构建在 MySQL、SQL Server 和 Oracle 中创建数据库?

java - 无法为可执行 jar 配置日志记录