android - Proguard 每次都与 gradle 一起运行;结果未重复使用

标签 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.

最佳答案

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

关于android - Proguard 每次都与 gradle 一起运行;结果未重复使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20092486/

相关文章:

java - TestNG 测试针对 JDK 9 模块的执行导致 InaccessibleObjectException

用于位置的 Android 前台服务

android - 如何在 Firebase Analytics 中设置自定义用户操作?

android - 发现不支持的 Gradle DSL 方法 : 'exclude()'

java - 如何在 Eclipse 中重命名 gradle 项目?

android - 使用 Proguard 在 res/raw 中使用 XML 文件时出现 NullPointerException

java - Proguard - 保留所有类和方法名称,但混淆字段

Java ProGuard 找不到引用的类

java - RxJava插入并返回Id方法(房间)调试

android - 当键盘可见时,EditText 下面的按钮不可见