gpt4 book ai didi

android - 从 gradle build 控制 list 元数据

转载 作者:行者123 更新时间:2023-11-29 20:49:25 26 4
gpt4 key购买 nike

我需要构建两个版本的 Android 应用程序 - 一个供测试人员使用(打开开发人员模式),一个供用户使用(关闭开发人员模式)。怎么做 ?现在我在 list 中有元数据值,我在代码中使用它,但必须在构建之前手动更改此值。可以通过 gradle 改变这个吗?

list

<meta-data android:name="developer.mode" android:value="true" />

代码

public class App extends Application {

public static boolean DEVELOPER_MODE = false;

...

private void loadMetaData() {
try {
ApplicationInfo ai = ctx.getPackageManager().getApplicationInfo(ctx.getPackageName(), PackageManager.GET_META_DATA);
DEVELOPER_MODE = ai.metaData.getBoolean("developer.mode");
} catch (PackageManager.NameNotFoundException e) {
}
}
}

...

if(App.DEVELOPER_MODE) { ... }

最佳答案

这种切换很常见。您可以使用元标记和 list 合并来实现,但我认为大多数开发人员都为此目的使用 BuildConfig。您可以使用自己的值扩展它:

buildTypes {
debug {
buildConfigField "boolean", "DEV_MODE", "true"
}

release {
buildConfigField "boolean", "DEV_MODE", "false"
}
}

或者查看android gradle插件已经提供的默认值。

public final class BuildConfig {
public static final boolean DEBUG = Boolean.parseBoolean("true");
public static final String APPLICATION_ID = "com.stackoverflow.question.debug";
public static final String BUILD_TYPE = "debug";
public static final String FLAVOR = "flavor1";
public static final int VERSION_CODE = 1;
public static final String VERSION_NAME = "v1.0.1";
// Fields from build type: debug
public static final boolean DEV_MODE = true;
}

然后您可以从应用程序 java 代码中引用此值

if (BuildConfig.DEV_MODE) {
// do developer things
}

BuildConfig 是自动生成的文件,将在每个构建变体组装任务中重新创建。

关于android - 从 gradle build 控制 list 元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29555455/

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