psv*_*psv 7 android build.gradle android-gradle-plugin
我想创建一个非常简单的任务,它在我的gradle配置中更改一个布尔值.
我在Android应用程序上工作,可以使用多个配置文件运行,并且对于每个构建需要指定在我的代码中应用程序是否必须伪造蓝牙.
我的gradle(相关代码):
def fakeBluetooth = "true"
buildTypes {
debug {
minifyEnabled false
signingConfig android.signingConfigs.debug
buildConfigField "boolean", "fakeBluetooth", fakeBluetooth
}
release {
minifyEnabled true
signingConfig android.signingConfigs.release
buildConfigField "boolean", "fakeBluetooth", fakeBluetooth
}
}
task noFakeBluetooth {
fakeBluetooth = "false"
}
Run Code Online (Sandbox Code Playgroud)
在我的java代码中使用的示例:
if (BuildConfig.fakeBluetooth) {
processFictiveBluetoothService();
} else {
// other case
}
Run Code Online (Sandbox Code Playgroud)
在命令行中使用的示例:
./gradlew iDebug noFakeBluetooth
Run Code Online (Sandbox Code Playgroud)
和
./gradlew iDebug
Run Code Online (Sandbox Code Playgroud)
问题:在两种情况下,fakeBluetooth的值始终为"true"(在cmd行中有或没有"noFakeBluetooth").
rci*_*ati 17
您可以使用项目属性来传递值:
buildTypes {
debug {
minifyEnabled false
signingConfig android.signingConfigs.debug
buildConfigField "boolean", "fakeBluetooth", fakeBluetooth()
}
release {
minifyEnabled true
signingConfig android.signingConfigs.release
buildConfigField "boolean", "fakeBluetooth", fakeBluetooth()
}
}
def fakeBluetooth() {
def value = project.getProperties().get("fakeBluetooth")
return value != null ? value : "true"
}
Run Code Online (Sandbox Code Playgroud)
然后你可以通过以下物业:
./gradlew iDebug -PfakeBluetooth=true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5801 次 |
| 最近记录: |