【问题标题】:Proguard runs every time with gradle; results not reusedProguard 每次都用 gradle 运行;结果未重用
【发布时间】:2013-11-20 09:50:35
【问题描述】:

我正在使用 gradle 1.8 和 Android Gradle 插件 0.6.3 构建一个 Android 应用。

android {       
        ...
        buildTypes {
        ... 
        release {
            runProguard true
            proguardFile 'proguard.cfg'
            proguardFile getDefaultProguardFile('proguard-android.txt')
        }
        ... 
}

每次我运行gradle assembleRelease 时,proguard 步骤似乎每次都运行 - 之前assemble 的结果似乎没有被重用,尽管没有代码更改。编译步骤还说UP-TO-DATEfor 随后的运行,这似乎证实了这一点。运行 proguard 会为每次构建增加大量时间。特别是运行connectedInstrumentTest,目前每次都需要运行proguard。

这是使用 proguard/gradle 时的正常行为吗?如果不是,哪些因素会导致 proguard 步骤每次都运行?

注意:实际上我不可能在没有 proguard 收缩的情况下构建我的应用程序,dex 步骤失败并出现以下错误:

trouble writing output: Too many method references: 67195; max is 65536.

【问题讨论】:

  • 你为什么经常调用assembleRelease?

标签: android gradle proguard


【解决方案1】:

当 Android Gradle 任务升级到 ProGuard Gradle 任务版本 4.10 时应该可以解决这个问题。后者为 Gradle 提供了必要的注解来检查输出是否是最新的。

【讨论】:

    猜你喜欢
    • 2020-05-19
    • 1970-01-01
    • 2011-08-07
    • 1970-01-01
    • 2021-11-22
    • 2016-10-28
    • 1970-01-01
    • 2012-05-02
    • 2016-07-31
    相关资源
    最近更新 更多