Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android BuildConfig中可以有非公共常量吗?_Android_Android Gradle Plugin - Fatal编程技术网

Android BuildConfig中可以有非公共常量吗?

Android BuildConfig中可以有非公共常量吗?,android,android-gradle-plugin,Android,Android Gradle Plugin,我正在为Android编写一个库,希望它只使用BuildConfig中的常量——所以可以说,库的客户端不会轻易看到它们 因此,我想实现的不是像这样的公众常数: package my.lib; public final class BuildConfig { public static final boolean FOO = false; } 它宁愿生成一个不带访问修饰符的常量,使内容在我的库的包中可见,而不是: package my.lib; public final class

我正在为Android编写一个库,希望它只使用BuildConfig中的常量——所以可以说,库的客户端不会轻易看到它们

因此,我想实现的不是像这样的公众常数:

package my.lib;

public final class BuildConfig {
    public static final boolean FOO = false; 
}
它宁愿生成一个不带访问修饰符的常量,使内容在我的库的包中可见,而不是:

package my.lib;

public final class BuildConfig {
    static final boolean FOO = false; 
}
有可能以某种方式实现吗? 谢谢

这是
BuildConfigGenerator
类中的
generate()
方法:

/**
 * Generates the BuildConfig class.
 */
public void generate() throws IOException {
    File pkgFolder = getFolderPath();
    if (!pkgFolder.isDirectory()) {
        if (!pkgFolder.mkdirs()) {
            throw new RuntimeException("Failed to create " + pkgFolder.getAbsolutePath());
        }
    }
    File buildConfigJava = new File(pkgFolder, BUILD_CONFIG_NAME);
    FileWriter out = new FileWriter(buildConfigJava);
    JavaWriter writer = new JavaWriter(out);
    Set<Modifier> publicFinal = EnumSet.of(Modifier.PUBLIC, Modifier.FINAL);
    Set<Modifier> publicFinalStatic = EnumSet.of(Modifier.PUBLIC, Modifier.FINAL, Modifier.STATIC);
    writer.emitJavadoc("Automatically generated file. DO NOT MODIFY")
            .emitPackage(mBuildConfigPackageName)
            .beginType("BuildConfig", "class", publicFinal);
    for (ClassField field : mFields) {
        writer.emitField(
                field.getType(),
                field.getName(),
                publicFinalStatic,
                field.getValue());
    }
    for (Object item : mItems) {
        if (item instanceof ClassField) {
            ClassField field = (ClassField)item;
            writer.emitField(
                    field.getType(),
                    field.getName(),
                    publicFinalStatic,
                    field.getValue());
        } else if (item instanceof String) {
            writer.emitSingleLineComment((String) item);
        }
    }
    writer.endType();
    out.close();
}
并且不给您选择的选项)

Set<Modifier> publicFinal = EnumSet.of(Modifier.PUBLIC, Modifier.FINAL);

writer.emitJavadoc("Automatically generated file. DO NOT MODIFY")
            .emitPackage(mBuildConfigPackageName)
            .beginType("BuildConfig", "class", publicFinal);