gpt4 book ai didi

android - 如何确定在运行时哪个 Gradle 配置处于 Activity 状态?

转载 作者:行者123 更新时间:2023-12-03 06:02:56 25 4
gpt4 key购买 nike

我的项目有几种可能的配置,每个配置都在“制作”阶段运行它自己的任务。如何确定选择了哪个配置?或者,确定运行哪个任务将提供相同的服务。

最佳答案

是的,这可以通过检查生成的 BuildConfig.java 文件来实现。 BuildConfig.java 会自动生成并放入 gen 文件夹中。

假设在你的 app 模块的 build.gradle 文件中,你有这个 buildType 配置:

 buildTypes {
release {
shrinkResources true
minifyEnabled true
debuggable false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
zipAlignEnabled true
}

preRelease {
// Pre release code over here.
}

debugConfiguration {
// Debug configuration code over here
}
}

而且,如果您选择 buildVariant 作为发行版,则会生成此 BuildConfig.Java 文件...
public final class BuildConfig {
public static final boolean DEBUG = false;
public static final String APPLICATION_ID = "com.yourapp.packagename";
public static final String BUILD_TYPE = "release";
public static final String FLAVOR = "";
public static final int VERSION_CODE = 1;
public static final String VERSION_NAME = "1.0";
}

因此,如果您希望根据构建变体执行一些操作,您可以尝试这样的事情......
final String buildType = BuildConfig.BUILD_TYPE;

switch(buildType) {

case "release" :
// code for release build
break;

case "preRelease" :
// code for preRelease build
break;

case "debugConfiguration" :
// code for debugConfiguration build
break;
}

注意:我不确定这是推荐的还是解决此问题的最佳方法。这种方法存在已知问题检查此链接 http://www.digipom.com/be-careful-with-buildconfig-debug/

我建议您可以手动设置构建类型标志来解决这个问题。例如,您可以使用它并基于此标志执行操作... 推荐
public class BuildTypeFlag {

// set this to release, debug, or prerelease manually for your requirements...
public static final BuildTypeEnum BUILD_TYPE_ENUM = RELEASE;

public enum BuildTypeEnum {

RELEASE, DEBUG, PRERELEASE, DUMMY_CONFIG

}

}

关于android - 如何确定在运行时哪个 Gradle 配置处于 Activity 状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40449515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com