Nic*_*ola 14 groovy android gradle android-productflavors
我有一个使用Gradle构建的Android应用程序,其中包含BuildTypes和Product Flavors(变体).我可以运行此命令来构建一个特定的apk:
./gradlew testFlavor1Debug
./gradlew testFlavor2Debug
Run Code Online (Sandbox Code Playgroud)
我必须在每个变体的build.gradle中创建一个自定义任务,例如:
./gradlew myCustomTaskFlavor1Debug
Run Code Online (Sandbox Code Playgroud)
我为此创建了一个任务:
android.applicationVariants.all { variant ->
task ("myCustomTask${variant.name.capitalize()}") {
println "*** TEST ***"
println variant.name.capitalize()
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是所有变种都调用了这个任务,而不是我正在运行的唯一变种.输出:
./gradlew myCustomTaskFlavor1Debug
*** TEST ***
Flavor1Debug
*** TEST ***
Flavor1Release
*** TEST ***
Flavor2Debug
*** TEST ***
Flavor2Release
Run Code Online (Sandbox Code Playgroud)
预期产量:
./gradlew myCustomTaskFlavor1Debug
*** TEST ***
Flavor1Debug
Run Code Online (Sandbox Code Playgroud)
如何定义自定义任务,动态,每个变体,然后使用正确的变体调用它?
Opa*_*pal 18
这是因为逻辑在配置时执行.尝试添加动作(<<):
android.applicationVariants.all { variant ->
task ("myCustomTask${variant.name.capitalize()}") << {
println "*** TEST ***"
println variant.name.capitalize()
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4190 次 |
| 最近记录: |