【问题标题】:Gradle blocked on :app:transformClassesWithDexForDebugGradle 在 :app:transformClassesWithDexForDebug 上被阻止
【发布时间】:2015-12-23 17:10:10
【问题描述】:

今天我正在开发我的 Android 应用程序。我推送了一个新的提交,我正在等待构建成功的通知,但什么也没收到。构建服务器在:app:transformClassesWithDexForDebug 上被阻止,并且服务器在每个 cpu 核心上都有 100% 的负载。我也尝试使用 jdk8 和 jdk7 但没有任何改变。

对于blocked,我的意思是日志的最后一行是:app:transformClassesWithDexForDebug,并且处于调试模式:

16:43:31.127 [调试] [org.gradle.process.internal.DefaultExecHandle] 将状态更改为:STARTING 16:43:31.132 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] 等待处理 开始:命令'/usr/lib/jvm/java-7-openjdk-amd64/bin/java'。 16:43:31.136 [调试] [org.gradle.process.internal.DefaultExecHandle] 将状态更改为:STARTED 16:43:31.136 [DEBUG] [org.gradle.process.internal.ExecHandleRunner] 等到流 处理... 16:43:31.136 [信息] [org.gradle.process.internal.DefaultExecHandle] 成功启动 进程'命令'/usr/lib/jvm/java-7-openjdk-amd64/bin/java''

我的构建服务器使用 docker 来运行构建,可能与它有关,但我不这么认为,因为上周它的运行就像一个魅力,每次构建最多需要 5 分钟

【问题讨论】:

    标签: java android gradle docker


    【解决方案1】:

    尝试使用“文件 -> 使缓存无效/重新启动 -> 无效并重新启动”。

    【讨论】:

    • 服务器始终使用新的干净环境
    【解决方案2】:

    我遇到了同样的错误,我可以通过在 gradle 中启用 Proguard 来解决它:

    android {
        ...
        buildTypes {
            release {
                minifyEnabled true
                proguardFiles getDefaultProguardFile('proguard-android.txt'),
                'proguard-rules.pro'
            }
         }
    }
    

    更多信息请见:http://developer.android.com/tools/help/proguard.html

    假设 gradle 出现此错误是因为应用程序超出了 65K 方法引用限制。 更多信息:http://developer.android.com/tools/building/multidex.html#avoid

    希望这能为您解决问题!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-13
      • 2016-04-04
      • 1970-01-01
      • 2015-08-31
      • 2016-05-24
      • 2014-10-31
      • 1970-01-01
      • 2012-12-29
      相关资源
      最近更新 更多