Gradle构建(Android项目)非常慢

时间:2015-04-28 12:17:39

标签: android gradle

我有一个gradle版本,有32种口味并且构建了5个小时?

这是我的build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 17
    buildToolsVersion "21.1.2"

    dexOptions {
        preDexLibraries false
    }

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 17
        multiDexEnabled true
        versionCode 3
        versionName '3.0.0.0'
    }

    signingConfigs {
        signingConfig1 {
            storeFile file('keystores/signingConfig1.keystore')
            storePassword 'signingConfig1'
            keyAlias 'signingConfig1'
            keyPassword 'signingConfig1'
        }

        ...
    }

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

    lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }

    productFlavors {
        flavor1 {
            applicationId "com.mycompany.project.flavor1"
            signingConfig signingConfigs.signingConfig1
        }

        flavor2 {
            applicationId "com.mycompany.project.flavor2"
            signingConfig signingConfigs.signingConfig2
        }

        ...

        flavor32 {
            applicationId "com.mycompany.project.flavor32"
            signingConfig signingConfigs.signingConfig32
        }
    }

    sourceSets {
        flavor1.res.srcDir 'src-flavors/flavor1/res'
        flavor2.res.srcDir 'src-flavors/flavor2/res'
        ...
        flavor32.res.srcDir 'src-flavors/flavor32/res'
    }
}

dependencies {
    compile 'com.android.support:multidex:1.0.0'
    compile 'com.android.support:support-v4:18.0.0'
    compile 'com.android.support:appcompat-v7:20.0.0'
    compile files('libs/stock-chart-full.jar')
    compile files('libs/bcprov-jdk15on-1.47.jar')
    compile files('libs/Pubnub-Android-3.7.2.jar')
    compile 'com.google.android.gms:play-services:7.0.0'
    compile 'org.roboguice:roboguice:3.+'
    provided 'org.roboguice:roboblender:3.+'
    compile 'com.google.code.findbugs:jsr305:1.3.9'
}

我的gradle.properties

org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.configureondemand=true

我可以做些什么来加速应用程序的构建? 如果我只为调试版本构建一个版本,则构建需要3分钟,如果我在调试和发布中构建所有版本,则需要花费3个多小时。 大部分时间都是花费DEX任务。

3 个答案:

答案 0 :(得分:1)

如果您使用的是Android Studio,最简单的解决方案是转到Preferences -> Gradle并启用Offline Work

答案 1 :(得分:0)

这已经有一段时间了。

  

不幸的是,android studio的make似乎每次都执行干净,导致以前的DEX文件被删除。

AFAIK你不能做比你已经做的更多的事情。 这是谷歌应该努力的事情(关于DEX阶段)。

参见相关内容:Building and running app via Gradle and Android Studio is slower than via Eclipse

答案 2 :(得分:0)

也许你可以尝试新的实验性android工具链Jack和Jill: http://tools.android.com/tech-docs/jackandjill