Android-将两种内置类型设置为同一个源文件夹
直到最近,我们的Android应用程序只有两种构建类型Android-将两种内置类型设置为同一个源文件夹,android,gradle,android-gradle-plugin,android-build,android-build-type,Android,Gradle,Android Gradle Plugin,Android Build,Android Build Type,直到最近,我们的Android应用程序只有两种构建类型debug和release。我们刚刚添加了一个qa构建类型,我想让qa构建类型指向调试源代码,这样我就不必重复代码了。这可能吗 qa和调试之间的主要区别是Proguard。我们的build.gradle文件如下所示: productFlavors { dev { minSdkVersion 21 } prod { minSdkVersion 14
debug
和release
。我们刚刚添加了一个qa
构建类型,我想让qa构建类型指向调试源代码,这样我就不必重复代码了。这可能吗
qa和调试之间的主要区别是Proguard。我们的build.gradle文件如下所示:
productFlavors {
dev {
minSdkVersion 21
}
prod {
minSdkVersion 14
}
}
buildTypes {
debug {
// no proguard
// use debug code
}
qa {
// proguard
// use debug code
}
release {
// proguard
// use release code
}
}
文件结构如下所示:
src
├── debug
│ ├── assets
│ ├── java
│ └── res
├── main
│ ├── java
│ └── res
├── release
│ ├── assets
│ ├── java
│ └── res
我尝试过使用SourceSet,但似乎不起作用:
sourceSets {
qa {
java.srcDirs = ['src/debug/java']
res.srcDirs = ['src/debug/res']
}
}
沿着这些思路应该能让你达到目的:
android {
...
buildTypes {
qa {
minifyEnabled true
}
}
sourceSets {
qa {
java {
srcDirs = ['src/main/java']
}
}
}
...
}
虽然在进一步的检查中,这似乎与上面的示例相同,但是我粘贴的格式确实适合我-可能我遗漏了差异,或者可能是其他原因造成的
您可以随时修改build.gradle并将类似的内容粘贴到中,以确保更改生效:
import static groovy.json.JsonOutput.*
println(
prettyPrint(toJson(
android.sourceSets.collectEntries {ss -> [ss.name, ss.java.toString()]}
))
)
我是如此接近。我只需要添加android清单文件和资产文件夹的位置
sourceSets {
qa {
manifest.srcFile 'src/debug/AndroidManifest.xml'
java.srcDirs = ['src/debug/java']
res.srcDirs = ['src/debug/res']
assets.srcDirs = ['src/debug/assets']
}
}