是否可以在Gradle中为每种风格指定testApplicationId?

Jef*_*man 6 android gradle android-gradle-plugin

我有两种产品口味,并设置testApplicationId如下build.gradle:

defaultConfig {
    minSdkVersion 8
    targetSdkVersion 19
    testApplicationId 'com.example.testapp'
}
Run Code Online (Sandbox Code Playgroud)

是否可以testApplicationId在每个中覆盖它productFlavor

我尝试testApplicationId在个人中覆盖自己productFlavors,但是R.class文件没有生成,我得到编译错误.

我读到了packageName/ applicationId不影响R.class文件,但我不确定该规则是否也适用testApplicationId.

azi*_*ian 1

我验证这在 Android Gradle 插件版本中按预期工作2.3.0

defaultConfig {
    ...   
    testApplicationId 'default'
}

productFlavors {
    first {
        testApplicationId 'first'
    }
    second {
        testApplicationId 'second'
    }
}

android.applicationVariants.all { variant ->
    variant.productFlavors.each {
        def buildType = variant.buildType.name.capitalize()
        println "$it.name$buildType $it.testApplicationId"
    }
}
Run Code Online (Sandbox Code Playgroud)

给出以下输出:

firstDebug first
firstRelease first
secondDebug second
secondRelease second
Run Code Online (Sandbox Code Playgroud)