Android BuildConfig中可以有非公共常量吗?
我正在为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
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);