Android - 将两个构建类型设置到同一个源文件夹
Android - Set two built types to the same source folder
直到最近,我们的 Android 应用程序只有两个构建类型 debug
和 release
。我们刚刚添加了一个 qa
构建类型,我希望 将 qa 构建类型指向调试源代码 ,这样我就不必复制代码了。这可能吗?
qa 和 debug 的主要区别在于 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
我试过使用 sourceSets 但它似乎不起作用:
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']
}
}
直到最近,我们的 Android 应用程序只有两个构建类型 debug
和 release
。我们刚刚添加了一个 qa
构建类型,我希望 将 qa 构建类型指向调试源代码 ,这样我就不必复制代码了。这可能吗?
qa 和 debug 的主要区别在于 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
我试过使用 sourceSets 但它似乎不起作用:
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']
}
}