Proguard每次都用gradle跑;结果没有重复使用

时间:2013-11-20 09:50:36

标签: android gradle proguard

我正在使用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-DATE,这似乎证实了这一点。运行proguard为每个构建添加了大量时间。特别是,运行connectedInstrumentTest目前需要每次运行proguard。

使用proguard / gradle时这是正常的行为吗?如果没有,有什么东西可能导致每次运行proguard步骤?

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

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

1 个答案:

答案 0 :(得分:4)

当Android Gradle任务升级到ProGuard Gradle任务版本4.10时,应解决此问题。后者具有Gradle必要的注释,以检查输出是否是最新的。