New error after upgrading to gradle -tool to 3.1.0-beta3 or 3.2.0-alpha03

Just a regular project with prod and mock flavors

in app / build.gradle:

 sourceSets {
        main.java.srcDirs += "blabla bla"
        test.java.srcDirs += "blabla bla"
        androidTest.java.srcDirs += "blabla bla"

        prodDebug.java.srcDirs += "blabla bla"
        mockDebug.java.srcDirs += "blabla bla"

        prod.java.srcDirs += "blabla bla"
        testProd.java.srcDirs += "blabla bla"
        androidTestProd.java.srcDirs += "blabla bla"

        mock.java.srcDirs += "blabla bla"
        testMock.java.srcDirs += "blabla bla"
        androidTestMock.java.srcDirs += "blabla bla"
    }

hit run in Android Studio:

something will go wrong:

Error:org.gradle.api.GradleException: The SourceSet 'mockDebug' is not recognized by the Android Gradle Plugin. Perhaps you misspelled something?

However, I can do "./gradlew clean build" or "./gradlew assembleProd installProdDebug", etc.

But, if I do this on the command line, the application cannot be completely built, it can install the application on the target device, but the application will crash as a problem "xxxx.dex".

issue

+6
source share
1 answer

Gradle 3.0.1 3.1.0. , Gradle , Android Studio.

, , sourceSets {} :

def customSourceSets = [
    myFirstBuildVariant: 'src/myFirstBuildVariant',
    mySecondBuildVariant: 'src/mySecondBuildVariant',
]

android.applicationVariants.all { 
    if (customSourceSets.containsKey(name)) {
        sourceSets.find { it.name == name }.setRoot(customSourceSets.get(name))
    }
}
+2

All Articles