This is a known issue. There are some limitations in Gradle to let us to the best granular processing of dependencies so for now we run into issues like this.
Normally we would make the task "prepareComAndroidSupportRecyclerviewV72103Library" only depend on what's needed to build (or rather download in this case) the artifact. However Gradle doesn't let us do this. So we have to make this task depend on the full configuration of the variant. This means making all the artifacts needed by the variant (all the external and internal dependencies). But we also have the problem that you have several variants and they all use that artifact. so we need to make the prepare task depends on all the full configurations for all the variants. Even if you only want to build one, and so you end up building all the dependencies of all the variants that use this dependency. We are working actively with Gradle to fix this. On Thu, May 28, 2015 at 1:22 AM, Xinyu Liu <[email protected]> wrote: > I added android support library dependencies to my project as the red > lines below. > and then the gradle builds module named "CoreEngine" with all variants. > It only be built with given variant before add android support library > with gradle keyword "compile". > I want to know if there is something wrong in my script. > > Thanks, > Xinyu > > > My script: > apply plugin: 'com.android.application' > > configurations { > armDebugCompile > armInternalCompile > armReleaseCompile > > armv7DebugCompile > armv7InternalCompile > armv7ReleaseCompile > > x86DebugCompile > x86InternalCompile > x86ReleaseCompile > > fatDebugCompile > fatInternalCompile > fatReleaseCompile > } > > evaluationDependsOn(':CoreEngine') > > > android { > compileSdkVersion rootProject.ext.compileSdkVersion > buildToolsVersion rootProject.ext.buildToolsVersion > > defaultConfig { > versionName "1.0.0" > versionCode 100 > applicationId "xxxxxx" > minSdkVersion rootProject.ext.minSdkVersion > targetSdkVersion rootProject.ext.targetSdkVersion > } > > signingConfigs { > debug { > } > > internal { > storeFile rootProject.file("internal.jks") > storePassword "xxxxx" > keyAlias "xxxx" > keyPassword "xxxxxx" > } > > release { > } > } > > buildTypes { > debug { > versionNameSuffix "-build" + getDate2() > > debuggable true > } > > internal { > versionNameSuffix "-build" + getDate2() > > debuggable true > > signingConfig signingConfigs.internal > } > > release { > versionNameSuffix "-build" + getDate2() > > debuggable false > > minifyEnabled true > shrinkResources true > proguardFiles getDefaultProguardFile('proguard-android.txt')//, ' > proguard-rules.pro' > } > } > > productFlavors { > fat { > } > x86 { > } > armv7 { > } > arm { > } > } > > } > > dependencies { > // for arm > armDebugCompile project(path: ':CoreEngine', configuration: 'armDebug') > armInternalCompile project(path: ':CoreEngine', configuration: > 'armInternal') > armReleaseCompile project(path: ':CoreEngine', configuration: > 'armRelease') > // for armv7 > armv7DebugCompile project(path: ':CoreEngine', configuration: > 'armv7Debug') > armv7InternalCompile project(path: ':CoreEngine', configuration: > 'armv7Internal') > armv7ReleaseCompile project(path: ':CoreEngine', configuration: > 'armv7Release') > // for x86 > x86DebugCompile project(path: ':CoreEngine', configuration: 'x86Debug') > x86InternalCompile project(path: ':CoreEngine', configuration: > 'x86Internal') > x86ReleaseCompile project(path: ':CoreEngine', configuration: > 'x86Release') > // for fat > fatDebugCompile project(path: ':CoreEngine', configuration: 'fatDebug') > fatInternalCompile project(path: ':CoreEngine', configuration: > 'fatInternal') > fatReleaseCompile project(path: ':CoreEngine', configuration: > 'fatRelease') > > compile 'com.android.support:support-v4:21.+' > compile 'com.android.support:recyclerview-v7:21.+' > } > > > android.applicationVariants.all { variant -> > String buildType = variant.buildType.name > String flavor = variant.name.replace(variant.buildType.name.capitalize(), > "") > > variant.outputs.each { output -> > def outputFile = output.outputFile > if (outputFile != null && outputFile.name.endsWith('.apk')) { > def fileName = outputFile.name.replace('.apk', "-${versionName}.apk") > output.outputFile = new File(outputFile.parent, fileName) > } > } > > // variant.assemble.doLast { > // variant.outputs.each { output -> > // def outputFile = output.outputFile > // if (outputFile != null && outputFile.name.endsWith('.apk')) { > // File apk = new File(outputFile.parent, outputFile.name) > // uploadApk(apk) > // } > // } > // } > } > > task(cleanLibsDir) << { > File dir = project.file('libs') > if (dir.exists()) { > dir.deleteDir() > } > } > clean.dependsOn cleanLibsDir > def String getDate2() { > Date date = new Date() > String formattedDate = date.format('yyyyMMdd') > return formattedDate > } > > > > tasks list before add red lines: > >> Start parametes: tasks = [assembleArmInternal] >> >> -------------------------------------------------- >> following tasks will be executed >> -------------------------------------------------- >> :CoreEngine:compileLint >> :CoreEngine:copyArmInternalLint >> :CoreEngine:mergeArmInternalProguardFiles >> :CoreEngine:preBuild >> :CoreEngine:preArmInternalBuild >> :CoreEngine:checkArmInternalManifest >> :CoreEngine:prepareArmInternalDependencies >> :CoreEngine:compileArmInternalAidl >> :CoreEngine:compileArmInternalRenderscript >> :CoreEngine:generateArmInternalBuildConfig >> :CoreEngine:generateArmInternalAssets >> :CoreEngine:mergeArmInternalAssets >> :CoreEngine:generateArmInternalResValues >> :CoreEngine:generateArmInternalResources >> :CoreEngine:packageArmInternalResources >> :CoreEngine:processArmInternalManifest >> :CoreEngine:processArmInternalResources >> :CoreEngine:generateArmInternalSources >> :CoreEngine:processArmInternalJavaRes >> :CoreEngine:compileArmInternalJava >> :CoreEngine:packageArmInternalJar >> :CoreEngine:armInternalNativeBuild >> :CoreEngine:compileArmInternalNdk >> :CoreEngine:packageArmInternalJniLibs >> :CoreEngine:packageArmInternalLocalJar >> :CoreEngine:packageArmInternalRenderscript >> :CoreEngine:bundleArmInternal >> :CoreEngine:compileArmInternalSources >> :CoreEngine:assembleArmInternal >> :app:preBuild >> :app:preArmInternalBuild >> :app:checkArmInternalManifest >> :app:prepareWorkspaceCoreEngineUnspecifiedArmInternalLibrary >> :app:prepareArmInternalDependencies >> :app:compileArmInternalAidl >> :app:compileArmInternalRenderscript >> :app:generateArmInternalBuildConfig >> :app:generateArmInternalAssets >> :app:mergeArmInternalAssets >> :app:generateArmInternalResValues >> :app:generateArmInternalResources >> :app:mergeArmInternalResources >> :app:processArmInternalManifest >> :app:processArmInternalResources >> :app:generateArmInternalSources >> :app:processArmInternalJavaRes >> :app:compileArmInternalJava >> :app:compileArmInternalNdk >> :app:compileArmInternalSources >> :app:preDexArmInternal >> :app:dexArmInternal >> :app:validateInternalSigning >> :app:packageArmInternal >> :app:zipalignArmInternal >> :app:assembleArmInternal >> > > > tasks list after add red lines: > Start parametes: tasks = [assembleArmInternal] > -------------------------------------------------- > following tasks will be executed > -------------------------------------------------- > :CoreEngine:compileLint > :CoreEngine:copyArmInternalLint > :CoreEngine:mergeArmInternalProguardFiles > :CoreEngine:preBuild > :CoreEngine:preArmInternalBuild > :CoreEngine:checkArmInternalManifest > :CoreEngine:prepareArmInternalDependencies > :CoreEngine:compileArmInternalAidl > :CoreEngine:compileArmInternalRenderscript > :CoreEngine:generateArmInternalBuildConfig > :CoreEngine:generateArmInternalAssets > :CoreEngine:mergeArmInternalAssets > :CoreEngine:generateArmInternalResValues > :CoreEngine:generateArmInternalResources > :CoreEngine:packageArmInternalResources > :CoreEngine:processArmInternalManifest > :CoreEngine:processArmInternalResources > :CoreEngine:generateArmInternalSources > :CoreEngine:processArmInternalJavaRes > :CoreEngine:compileArmInternalJava > :CoreEngine:packageArmInternalJar > :CoreEngine:armInternalNativeBuild > :CoreEngine:compileArmInternalNdk > :CoreEngine:packageArmInternalJniLibs > :CoreEngine:packageArmInternalLocalJar > :CoreEngine:packageArmInternalRenderscript > :CoreEngine:bundleArmInternal > :CoreEngine:compileArmInternalSources > :CoreEngine:assembleArmInternal > :app:preBuild > :app:preArmInternalBuild > :app:checkArmInternalManifest > :CoreEngine:copyArmDebugLint > :CoreEngine:mergeArmDebugProguardFiles > :CoreEngine:preArmDebugBuild > :CoreEngine:checkArmDebugManifest > :CoreEngine:prepareArmDebugDependencies > :CoreEngine:compileArmDebugAidl > :CoreEngine:compileArmDebugRenderscript > :CoreEngine:generateArmDebugBuildConfig > :CoreEngine:generateArmDebugAssets > :CoreEngine:mergeArmDebugAssets > :CoreEngine:generateArmDebugResValues > :CoreEngine:generateArmDebugResources > :CoreEngine:packageArmDebugResources > :CoreEngine:processArmDebugManifest > :CoreEngine:processArmDebugResources > :CoreEngine:generateArmDebugSources > :CoreEngine:processArmDebugJavaRes > :CoreEngine:compileArmDebugJava > :CoreEngine:packageArmDebugJar > :CoreEngine:armDebugNativeBuild > :CoreEngine:compileArmDebugNdk > :CoreEngine:packageArmDebugJniLibs > :CoreEngine:packageArmDebugLocalJar > :CoreEngine:packageArmDebugRenderscript > :CoreEngine:bundleArmDebug > :CoreEngine:copyArmReleaseLint > :CoreEngine:mergeArmReleaseProguardFiles > :CoreEngine:preArmReleaseBuild > :CoreEngine:checkArmReleaseManifest > :CoreEngine:prepareArmReleaseDependencies > :CoreEngine:compileArmReleaseAidl > :CoreEngine:compileArmReleaseRenderscript > :CoreEngine:generateArmReleaseBuildConfig > :CoreEngine:generateArmReleaseAssets > :CoreEngine:mergeArmReleaseAssets > :CoreEngine:generateArmReleaseResValues > :CoreEngine:generateArmReleaseResources > :CoreEngine:packageArmReleaseResources > :CoreEngine:processArmReleaseManifest > :CoreEngine:processArmReleaseResources > :CoreEngine:generateArmReleaseSources > :CoreEngine:processArmReleaseJavaRes > :CoreEngine:compileArmReleaseJava > :CoreEngine:packageArmReleaseJar > :CoreEngine:armReleaseNativeBuild > :CoreEngine:compileArmReleaseNdk > :CoreEngine:packageArmReleaseJniLibs > :CoreEngine:packageArmReleaseLocalJar > :CoreEngine:packageArmReleaseRenderscript > :CoreEngine:bundleArmRelease > :CoreEngine:copyArmv7DebugLint > :CoreEngine:mergeArmv7DebugProguardFiles > :CoreEngine:preArmv7DebugBuild > :CoreEngine:checkArmv7DebugManifest > :CoreEngine:prepareArmv7DebugDependencies > :CoreEngine:compileArmv7DebugAidl > :CoreEngine:compileArmv7DebugRenderscript > :CoreEngine:generateArmv7DebugBuildConfig > :CoreEngine:generateArmv7DebugAssets > :CoreEngine:mergeArmv7DebugAssets > :CoreEngine:generateArmv7DebugResValues > :CoreEngine:generateArmv7DebugResources > :CoreEngine:packageArmv7DebugResources > :CoreEngine:processArmv7DebugManifest > :CoreEngine:processArmv7DebugResources > :CoreEngine:generateArmv7DebugSources > :CoreEngine:processArmv7DebugJavaRes > :CoreEngine:compileArmv7DebugJava > :CoreEngine:packageArmv7DebugJar > :CoreEngine:armv7DebugNativeBuild > :CoreEngine:compileArmv7DebugNdk > :CoreEngine:packageArmv7DebugJniLibs > :CoreEngine:packageArmv7DebugLocalJar > :CoreEngine:packageArmv7DebugRenderscript > :CoreEngine:bundleArmv7Debug > :CoreEngine:copyArmv7InternalLint > :CoreEngine:mergeArmv7InternalProguardFiles > :CoreEngine:preArmv7InternalBuild > :CoreEngine:checkArmv7InternalManifest > :CoreEngine:prepareArmv7InternalDependencies > :CoreEngine:compileArmv7InternalAidl > :CoreEngine:compileArmv7InternalRenderscript > :CoreEngine:generateArmv7InternalBuildConfig > :CoreEngine:generateArmv7InternalAssets > :CoreEngine:mergeArmv7InternalAssets > :CoreEngine:generateArmv7InternalResValues > :CoreEngine:generateArmv7InternalResources > :CoreEngine:packageArmv7InternalResources > :CoreEngine:processArmv7InternalManifest > :CoreEngine:processArmv7InternalResources > :CoreEngine:generateArmv7InternalSources > :CoreEngine:processArmv7InternalJavaRes > :CoreEngine:compileArmv7InternalJava > :CoreEngine:packageArmv7InternalJar > :CoreEngine:armv7InternalNativeBuild > :CoreEngine:compileArmv7InternalNdk > :CoreEngine:packageArmv7InternalJniLibs > :CoreEngine:packageArmv7InternalLocalJar > :CoreEngine:packageArmv7InternalRenderscript > :CoreEngine:bundleArmv7Internal > :CoreEngine:copyArmv7ReleaseLint > :CoreEngine:mergeArmv7ReleaseProguardFiles > :CoreEngine:preArmv7ReleaseBuild > :CoreEngine:checkArmv7ReleaseManifest > :CoreEngine:prepareArmv7ReleaseDependencies > :CoreEngine:compileArmv7ReleaseAidl > :CoreEngine:compileArmv7ReleaseRenderscript > :CoreEngine:generateArmv7ReleaseBuildConfig > :CoreEngine:generateArmv7ReleaseAssets > :CoreEngine:mergeArmv7ReleaseAssets > :CoreEngine:generateArmv7ReleaseResValues > :CoreEngine:generateArmv7ReleaseResources > :CoreEngine:packageArmv7ReleaseResources > :CoreEngine:processArmv7ReleaseManifest > :CoreEngine:processArmv7ReleaseResources > :CoreEngine:generateArmv7ReleaseSources > :CoreEngine:processArmv7ReleaseJavaRes > :CoreEngine:compileArmv7ReleaseJava > :CoreEngine:packageArmv7ReleaseJar > :CoreEngine:armv7ReleaseNativeBuild > :CoreEngine:compileArmv7ReleaseNdk > :CoreEngine:packageArmv7ReleaseJniLibs > :CoreEngine:packageArmv7ReleaseLocalJar > :CoreEngine:packageArmv7ReleaseRenderscript > :CoreEngine:bundleArmv7Release > :CoreEngine:copyFatDebugLint > :CoreEngine:mergeFatDebugProguardFiles > :CoreEngine:preFatDebugBuild > :CoreEngine:checkFatDebugManifest > :CoreEngine:prepareFatDebugDependencies > :CoreEngine:compileFatDebugAidl > :CoreEngine:compileFatDebugRenderscript > :CoreEngine:generateFatDebugBuildConfig > :CoreEngine:generateFatDebugAssets > :CoreEngine:mergeFatDebugAssets > :CoreEngine:generateFatDebugResValues > :CoreEngine:generateFatDebugResources > :CoreEngine:packageFatDebugResources > :CoreEngine:processFatDebugManifest > :CoreEngine:processFatDebugResources > :CoreEngine:generateFatDebugSources > :CoreEngine:processFatDebugJavaRes > :CoreEngine:compileFatDebugJava > :CoreEngine:packageFatDebugJar > :CoreEngine:fatDebugNativeBuild > :CoreEngine:compileFatDebugNdk > :CoreEngine:packageFatDebugJniLibs > :CoreEngine:packageFatDebugLocalJar > :CoreEngine:packageFatDebugRenderscript > :CoreEngine:bundleFatDebug > :CoreEngine:copyFatInternalLint > :CoreEngine:mergeFatInternalProguardFiles > :CoreEngine:preFatInternalBuild > :CoreEngine:checkFatInternalManifest > :CoreEngine:prepareFatInternalDependencies > :CoreEngine:compileFatInternalAidl > :CoreEngine:compileFatInternalRenderscript > :CoreEngine:generateFatInternalBuildConfig > :CoreEngine:generateFatInternalAssets > :CoreEngine:mergeFatInternalAssets > :CoreEngine:generateFatInternalResValues > :CoreEngine:generateFatInternalResources > :CoreEngine:packageFatInternalResources > :CoreEngine:processFatInternalManifest > :CoreEngine:processFatInternalResources > :CoreEngine:generateFatInternalSources > :CoreEngine:processFatInternalJavaRes > :CoreEngine:compileFatInternalJava > :CoreEngine:packageFatInternalJar > :CoreEngine:fatInternalNativeBuild > :CoreEngine:compileFatInternalNdk > :CoreEngine:packageFatInternalJniLibs > :CoreEngine:packageFatInternalLocalJar > :CoreEngine:packageFatInternalRenderscript > :CoreEngine:bundleFatInternal > :CoreEngine:copyFatReleaseLint > :CoreEngine:mergeFatReleaseProguardFiles > :CoreEngine:preFatReleaseBuild > :CoreEngine:checkFatReleaseManifest > :CoreEngine:prepareFatReleaseDependencies > :CoreEngine:compileFatReleaseAidl > :CoreEngine:compileFatReleaseRenderscript > :CoreEngine:generateFatReleaseBuildConfig > :CoreEngine:generateFatReleaseAssets > :CoreEngine:mergeFatReleaseAssets > :CoreEngine:generateFatReleaseResValues > :CoreEngine:generateFatReleaseResources > :CoreEngine:packageFatReleaseResources > :CoreEngine:processFatReleaseManifest > :CoreEngine:processFatReleaseResources > :CoreEngine:generateFatReleaseSources > :CoreEngine:processFatReleaseJavaRes > :CoreEngine:compileFatReleaseJava > :CoreEngine:packageFatReleaseJar > :CoreEngine:fatReleaseNativeBuild > :CoreEngine:compileFatReleaseNdk > :CoreEngine:packageFatReleaseJniLibs > :CoreEngine:packageFatReleaseLocalJar > :CoreEngine:packageFatReleaseRenderscript > :CoreEngine:bundleFatRelease > :CoreEngine:copyX86DebugLint > :CoreEngine:mergeX86DebugProguardFiles > :CoreEngine:preX86DebugBuild > :CoreEngine:checkX86DebugManifest > :CoreEngine:prepareX86DebugDependencies > :CoreEngine:compileX86DebugAidl > :CoreEngine:compileX86DebugRenderscript > :CoreEngine:generateX86DebugBuildConfig > :CoreEngine:generateX86DebugAssets > :CoreEngine:mergeX86DebugAssets > :CoreEngine:generateX86DebugResValues > :CoreEngine:generateX86DebugResources > :CoreEngine:packageX86DebugResources > :CoreEngine:processX86DebugManifest > :CoreEngine:processX86DebugResources > :CoreEngine:generateX86DebugSources > :CoreEngine:processX86DebugJavaRes > :CoreEngine:compileX86DebugJava > :CoreEngine:packageX86DebugJar > :CoreEngine:x86DebugNativeBuild > :CoreEngine:compileX86DebugNdk > :CoreEngine:packageX86DebugJniLibs > :CoreEngine:packageX86DebugLocalJar > :CoreEngine:packageX86DebugRenderscript > :CoreEngine:bundleX86Debug > :CoreEngine:copyX86InternalLint > :CoreEngine:mergeX86InternalProguardFiles > :CoreEngine:preX86InternalBuild > :CoreEngine:checkX86InternalManifest > :CoreEngine:prepareX86InternalDependencies > :CoreEngine:compileX86InternalAidl > :CoreEngine:compileX86InternalRenderscript > :CoreEngine:generateX86InternalBuildConfig > :CoreEngine:generateX86InternalAssets > :CoreEngine:mergeX86InternalAssets > :CoreEngine:generateX86InternalResValues > :CoreEngine:generateX86InternalResources > :CoreEngine:packageX86InternalResources > :CoreEngine:processX86InternalManifest > :CoreEngine:processX86InternalResources > :CoreEngine:generateX86InternalSources > :CoreEngine:processX86InternalJavaRes > :CoreEngine:compileX86InternalJava > :CoreEngine:packageX86InternalJar > :CoreEngine:x86InternalNativeBuild > :CoreEngine:compileX86InternalNdk > :CoreEngine:packageX86InternalJniLibs > :CoreEngine:packageX86InternalLocalJar > :CoreEngine:packageX86InternalRenderscript > :CoreEngine:bundleX86Internal > :CoreEngine:copyX86ReleaseLint > :CoreEngine:mergeX86ReleaseProguardFiles > :CoreEngine:preX86ReleaseBuild > :CoreEngine:checkX86ReleaseManifest > :CoreEngine:prepareX86ReleaseDependencies > :CoreEngine:compileX86ReleaseAidl > :CoreEngine:compileX86ReleaseRenderscript > :CoreEngine:generateX86ReleaseBuildConfig > :CoreEngine:generateX86ReleaseAssets > :CoreEngine:mergeX86ReleaseAssets > :CoreEngine:generateX86ReleaseResValues > :CoreEngine:generateX86ReleaseResources > :CoreEngine:packageX86ReleaseResources > :CoreEngine:processX86ReleaseManifest > :CoreEngine:processX86ReleaseResources > :CoreEngine:generateX86ReleaseSources > :CoreEngine:processX86ReleaseJavaRes > :CoreEngine:compileX86ReleaseJava > :CoreEngine:packageX86ReleaseJar > :CoreEngine:x86ReleaseNativeBuild > :CoreEngine:compileX86ReleaseNdk > :CoreEngine:packageX86ReleaseJniLibs > :CoreEngine:packageX86ReleaseLocalJar > :CoreEngine:packageX86ReleaseRenderscript > :CoreEngine:bundleX86Release > :app:preArmDebugBuild > :app:preArmReleaseBuild > :app:preArmv7DebugBuild > :app:preArmv7InternalBuild > :app:preArmv7ReleaseBuild > :app:preFatDebugBuild > :app:preFatInternalBuild > :app:preFatReleaseBuild > :app:preX86DebugBuild > :app:preX86InternalBuild > :app:preX86ReleaseBuild > :app:prepareComAndroidSupportRecyclerviewV72103Library > :app:prepareComAndroidSupportSupportV42103Library > :app:prepareTrunkCoreEngineUnspecifiedArmInternalLibrary > :app:prepareArmInternalDependencies > :app:compileArmInternalAidl > :app:compileArmInternalRenderscript > :app:generateArmInternalBuildConfig > :app:generateArmInternalAssets > :app:mergeArmInternalAssets > :app:generateArmInternalResValues > :app:generateArmInternalResources > :app:mergeArmInternalResources > :app:processArmInternalManifest > :app:processArmInternalResources > :app:generateArmInternalSources > :app:processArmInternalJavaRes > :app:compileArmInternalJava > :app:compileArmInternalNdk > :app:compileArmInternalSources > :app:preDexArmInternal > :app:dexArmInternal > :app:validateInternalSigning > :app:packageArmInternal > :app:zipalignArmInternal > :app:assembleArmInternal > > -- > You received this message because you are subscribed to the Google Groups > "adt-dev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- Xavier Ducrohet Android SDK Tech Lead Google Inc. http://developer.android.com | http://tools.android.com Please do not send me questions directly. Thanks! -- You received this message because you are subscribed to the Google Groups "adt-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
