Gradle中是否可以针对每个flavor指定testApplicationId?

6

我有两种产品风格,并在build.gradle中设置了testApplicationId,如下所示:

defaultConfig {
    minSdkVersion 8
    targetSdkVersion 19
    testApplicationId 'com.example.testapp'
}

在每个productFlavor中覆盖testApplicationId是否可行?

我尝试在各自的productFlavors中覆盖testApplicationId本身,但是R.class文件不会生成,并且我会得到编译错误。

我了解到packageName/applicationId不会影响R.class文件,但我不确定这条规则是否适用于testApplicationId


我正在尝试自己完成这个任务。这应该是可能的,因为您可以针对每个 flavor 指定 applicationId。但是,我遇到了一个问题,Gradle 抱怨我没有指定我的 applicationId,尽管我已经明确地将其放入构建文件中... - Stuartsoft
2
刚在 Android 开发工具中报告了一个 bug。 - Jeff Brateman
你尝试过使用测试清单在XML中明确设置applicationId而不是gradle吗? - Mike Holler
1个回答

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"
    }
}

给出以下输出:
firstDebug first
firstRelease first
secondDebug second
secondRelease second

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接