С двумя каталогами res для каждого варианта сборки Gradle прекратил отслеживать изменения в файлах ресурсов.

Я совершенно невинно перешел на использованиеразличные значки приложений для каждого продукта вдоль этих линий:

sourceSets.production {
    res.srcDirs = ['res', 'res-production']
}

sourceSets.beta {
    res.srcDirs = ['res', 'res-beta']
}

sourceSets.internal {
    res.srcDirs = ['res', 'res-internal']
}

Дело в том, что после этогоGradle перестал замечать изменения в любых файлах макета, такие какres/layout/activity_faq.xml, а такжетребует чистой сборки каждый раз, если я хочу, чтобы мои изменения XML были включены в APK.

Сначала я подумал, что это проблема Android Studio, но на самом деле я могу воспроизвести его с помощью чистого Gradle в командной строке, просто просматривая файлы, отображаемые в.build/res/all/internal/debug/layout

Когда я бегу./gradlew assembleInternalDebug, это выводит:

:compileInternalDebugNdk UP-TO-DATE
:preBuild UP-TO-DATE
:preInternalDebugBuild UP-TO-DATE
:prepareInternalDebugDependencies
:compileInternalDebugAidl UP-TO-DATE
:compileInternalDebugRenderscript UP-TO-DATE
:generateInternalDebugBuildConfig UP-TO-DATE
:mergeInternalDebugAssets UP-TO-DATE
:mergeInternalDebugResources
:processInternalDebugManifest UP-TO-DATE
:processInternalDebugResources UP-TO-DATE
:generateInternalDebugSources UP-TO-DATE
:compileInternalDebugJava UP-TO-DATE
:preDexInternalDebug UP-TO-DATE
:dexInternalDebug UP-TO-DATE
:processInternalDebugJavaRes UP-TO-DATE
:validateDebugSigning
:packageInternalDebug UP-TO-DATE
:assembleInternalDebug UP-TO-DATE

BUILD SUCCESSFUL

Вот,processInternalDebugResources показано, чтоUP-TO-DATEпока думаю что долженне быть, когда есть измененные файлы ресурсов. Перед изменением иконки на вкус в аналогичном выводе Gradle,processInternalDebugResources былоне показано в актуальном состоянии.

Вопрос в том,Есть ли способ исправить это, или я наткнулся на ошибку в плагине Android Gradle?

Мой:build.gradle

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.7.3'
    }
}
apply plugin: 'android'

repositories {
    mavenCentral()
}
dependencies {
    compile 'com.google.code.gson:gson:2.2.4'
    compile 'com.google.guava:guava:15.0'
    compile 'com.netflix.rxjava:rxjava-core:0.14.2'
    compile 'com.netflix.rxjava:rxjava-android:0.14.2'
    compile 'com.squareup.okhttp:okhttp:1.2.1'

    compile 'com.android.support:support-v4:13.0.0'
    compile 'com.android.support:support-v13:13.0.0'
}

android {
    compileSdkVersion 19
    buildToolsVersion "19"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 19
    }

    productFlavors {
        production {
            packageName "fi.company.app"
        }
        beta {
            packageName "fi.company.app.beta"
        }
        internal {
            packageName "fi.company.app.internal"
        }
    }

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        // Move the tests to tests/java, tests/res, etc...
        instrumentTest.setRoot('tests')

        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }

    // Custom res directories for different flavors; used for 
    // setting different app icon.

    sourceSets.production {
        res.srcDirs = ['res', 'res-production']
    }

    sourceSets.beta {
        res.srcDirs = ['res', 'res-beta']
    }

    sourceSets.internal {
        res.srcDirs = ['res', 'res-internal']
    }

    signingConfigs {
        release {
            // ...
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
            // ...
        }
    }
}

Gradle 1,9; Плагин Android Gradle 0.7.3.

редактировать: По другим причинам я перешел с продукта на вкуспользовательские типы сборки для моего приложения требует настройки иконок. Эта проблема все еще остается, так что, по крайней мере, это невкус продукта специфический.

Ответы на вопрос(2)

Ваш ответ на вопрос