在项目结构中,我有发布和调试构建类型
如何为不同的构建类型设置不同版本的NetworkSettings.java
文件。
例如发布
public class NetworkSettings {
private final static String SERVER_URL="releaseserver.com";
private final static int SERVER_PORT=80;
public static String getServerUrl()
{
return SERVER_URL;
}
public static int getServerPort()
{
return SERVER_PORT;
}
}
和调试
public class NetworkSettings {
private final static String SERVER_URL="testserver.com";
private final static int SERVER_PORT=80;
public static String getServerUrl()
{
return SERVER_URL;
}
public static int getServerPort()
{
return SERVER_PORT;
}
}
我想使用构建类型来做到这一点,以免忘记手动更改它。
答案 0 :(得分:2)
你可以通过多种方式获得它。
例如,您可以使用BuildConfig。 使用Gradle,您还可以在BuildConfig类中生成其他字段。
android {
...
buildTypes {
debug {
buildConfigField "boolean", "MY_VAR", "true"
}
main {
buildConfigField "boolean", "MY_VAR", "false"
}
...
}
}
然后..
if (BuildConfig.MY_VAR) {
}
否则,您可以使用以不同的风格提供同一类的不同实现。
注意:您必须从main
来源
app/
|--libs/
|--src/
|--flavor1/
| |--java/
| |--com/example/
| |--Flavor.java
|--flavor2/
| |--java/
| |--com/example/
| |--Flavor.java
|--main/
|--java/
| |--...
当然你要在build.gradle中声明这些风格
productFlavors {
flavor2 {
}
flavor1 {
}
}
您还可以使用构建类型,添加名为debug和release的文件夹。
app/
|--libs/
|--src/
|--debug/
| |--java/
| |--com/example/
| |--MyClass.java
|--release/
| |--java/
| |--com/example/
| |--MyClass.java
|--main/
|--java/
| |--...
答案 1 :(得分:0)
尝试这样的事情,我认为ide会支持这样的事情
在你的班上..
private final static boolean DEVELOPMENT_MODE = true;
private final static String SERVER_URL;
private final static int SERVER_PORT = 80;
static{
SERVER_URL = ((DEVELOPMENT_MODE) ? "releaseserver.com" : "testserver.com");
}