我在 BuildConfig
中定义了一个特定字段,用于在运行时获取 URL
。因此,对于每种构建类型,我使用不同的字符串:
prod {
buildConfigField "String", "BASE_URL", "\"abc.com\""
}
debug {
buildConfigField "String", "BASE_URL", "\"efg.com\""
}
是否可以在运行 android 测试时定义不同的 URL?我尝试将此设置放在 sourceSets->androidTest
下,但不被接受。
最佳答案
您必须将它作为参数传递给 connectedAndroidTest
任务。
android {
...
buildTypes {
prod {
buildConfigField "String", "BASE_URL", "\"${getBaseUrl("abc.com")}\""
}
debug {
buildConfigField "String", "BASE_URL", "\"${getBaseUrl("efg.com")}\""
}
}
}
def getBaseUrl(String fallback) {
return project.hasProperty("base_url") ? project.getProperties().get("base_url") : fallback
}
然后通过-P
传递参数:
./gradlew connectedDebugAndroidTest -Pbase_url="xxx.com"
./gradlew connectedProdAndroidTest -Pbase_url="yyy.com"
关于android - 为 androidTest 定义 buildConfigField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33909021/