如何在Android Studio中更改调试版本的设置

时间:2014-09-24 05:44:24

标签: android android-studio

在项目结构中,我有发布和调试构建类型enter image description here

如何为不同的构建类型设置不同版本的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;
    }
}

我想使用构建类型来做到这一点,以免忘记手动更改它。

2 个答案:

答案 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");
}