【问题标题】:Error building APK when minifyEnabled true当 minifyEnabled 为 true 时构建 APK 时出错
【发布时间】:2015-11-08 00:13:18
【问题描述】:

我需要启用 proguard,所以我将 minifyEnabled 设置为 true。但是,然后在尝试构建发布 APK 时出现以下错误:

错误:任务 ':app:packageRelease' 执行失败。 无法计算 .../app/build/intermediates/classes-proguard/release/classes.jar 的哈希

编辑:听起来我需要根据我正在使用的库更新我的 proguard 规则。这是我的依赖项:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.0'
    compile 'com.jakewharton:butterknife:7.0.1'
    compile 'com.parse.bolts:bolts-android:1.+'
    compile 'com.parse:parse-android:1.+'
    compile('com.crashlytics.sdk.android:crashlytics:2.5.2@aar') {
    transitive = true;
    }
    compile('com.mopub.sdk.android:mopub:4.0.0@aar') {
        transitive = true;
    }
}

找出在proguard-rules中为每一个添加什么的最佳方法是什么?到目前为止,我只找到了 ButterKnife's

【问题讨论】:

  • 这听起来像是您需要配置 ProGuard 规则以考虑您正在使用的库。看看这个类似的问题:stackoverflow.com/questions/30934729/…
  • @MattMatt 就像在我的 proguard-rules.pro 文件中添加 dontwarn 一样简单?

标签: android apk android-proguard


【解决方案1】:

-dontwarn 如果需要的依赖项被剥离而不抛出错误,则可能会导致另一个问题。

您最好的办法是通过检查您的日志输出(或将其发布在此处以便他人查看)找到阻止构建发生的库,然后使用 -keep-dontwarn 根据需要,在 proguard-rules.pro 文件中。

在大多数情况下,人们之前已经为您正在使用的相同库执行此操作,您只需找到一个示例规则文件并查看他们的配置以了解它是如何完成的,like this one for OkHttp 和团队经常在 GitHub like this one for Retrofit 上的库项目的设置部分有这个。

【讨论】:

  • 谢谢。我似乎已经压制了大部分日志警告;唯一剩下的与 MoPub SDK 有关,特别是当它尝试引用“com.apache”时。希望我能找出我需要为此添加到 proguard-rules 的内容
  • 不客气。如果您使用最新的开发工具进行构建,它可能会抱怨缺少 Apache HTTP 客户端支持。详细信息(和解决方法)在这里:developer.android.com/about/versions/marshmallow/…
  • 我认为 Retrofit 的链接是错误的,但它是 ButterKnife:github.com/JakeWharton/butterknife/blob/master/butterknife/…
  • @ShailendraMadda 好眼力!你是 5.5 年来第一个注意到这个错字的人。它应该说 Butterknife,尽管 Proguard 部分已经从 Butterknife 文档中删除,所以它甚至不再相关。最好的办法是检查 GitHub 上的当前项目页面以查找您正在使用的任何库,如果 proguard 文件尚未包含在 Gradle 工件中。他们中的大多数是这些天。
  • 欢迎您@MattMatt,感谢您的信息
猜你喜欢
  • 1970-01-01
  • 2020-08-03
  • 2021-12-17
  • 1970-01-01
  • 1970-01-01
  • 2016-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多