嗨,我正在尝试根据我在以下定义的风格和自定义构建类型来构建androidTest APK:
productFlavors {
FlavourOne {
applicationIdSuffix ".live"
buildConfigField 'String', 'SERVER_BASE_URL', '"http://live.com"'
}
FlavourTwo {
applicationIdSuffix ".demo"
buildConfigField 'String', 'SERVER_BASE_URL', '"http://demo.com"'
}
}
buildTypes {
debug {
minifyEnabled false
// shrink code (remove unused classes and methods) - note that it falls back to experimental shrinker for Instant Run
shrinkResources false // don't strip unused res files
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro', 'proguard-rules-debug.pro'
testProguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules-test.pro'
}
release {
minifyEnabled true // shrink code (remove unused classes and methods)
shrinkResources false // don't strip unused res files
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
debugDemo {
applicationIdSuffix '.demo'
versionNameSuffix '-DEMO'
minifyEnabled false
// shrink code (remove unused classes and methods) - note that it falls back to experimental shrinker for Instant Run
shrinkResources false // don't strip unused res files
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro', 'proguard-rules-debug.pro'
testProguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules-test.pro'
}
demo {
applicationIdSuffix '.demo'
versionNameSuffix '-DEMO'
minifyEnabled true // shrink code (remove unused classes and methods)
shrinkResources false // don't strip unused res files
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
当我运行gradlew assembleFlavourOneDebugDemoAndroidTest
时,我立即收到一条错误消息
Task 'assembleFlavourOneDebugDemoAndroidTest' not found in root project 'MyProject'.
如果我省略自定义buildType并仅执行assembleFlavourOneAndroidTest
,它就可以正常工作。如果仅assembleFlavourOneDebugANdroidTest
...
答案 0 :(得分:2)
仅根据文档 一个 进行测试。默认情况下,它是 debug 构建类型,但是可以使用以下方式重新配置:
android {
testBuildType "demo"
}
,同步后您的gradle任务应如下所示:
./gradlew assembleFlavourOneDemoAndroidTest
请注意,如您在最后的说明中所指出的,将进行否调试。
assembleFlavourOne
DebugDemoAndroidTest
答案 1 :(得分:0)
我假设某些声明缺少initWith
指令-
因为任何测试版本都严格取决于initWith debug
。
使用initWith release
时,不会生成测试任务。
debugDemo {
initWith debug
...
}
通过
initWith
属性,您可以从其他构建类型中复制配置,然后仅配置要更改的设置。