在Java/Eclipse中编译时生成本地IP地址

在Java/Eclipse中编译时生成本地IP地址,java,android,eclipse,Java,Android,Eclipse,我有一个Android项目,它有多个不同服务器的配置。在代码中,有一个switch语句,根据配置中变量的值确定应用程序正在使用的服务器。它看起来像这样: switch (TARGET_DOMAIN) { case PRODUCTION: api = "http://app.api.{omitted domain}.com/api/"; break; case STAGING: api = "http://staging.{omitt

我有一个Android项目,它有多个不同服务器的配置。在代码中,有一个switch语句,根据配置中变量的值确定应用程序正在使用的服务器。它看起来像这样:

switch (TARGET_DOMAIN) {
    case PRODUCTION:
        api = "http://app.api.{omitted domain}.com/api/";
        break;
    case STAGING:
        api = "http://staging.{omitted domain}.com/api/";
        break;
    case LOCAL:
        api = "http://192.168.1.4:8000/api/";
        break;
    case EMULATOR:
        api = "http://10.0.2.2:8000/api/";
        break;
    default:
        throw new IllegalStateException("TARGET_DOMAIN is unset");
}
我想知道是否有某种方法可以在编译过程中用本地IP(进行编译的机器的本地IP)以编程方式替换本地下的IP。我正在使用Eclipse,如果这有什么不同的话。这是可能的还是我只是个疯子


如果您知道我可以消除仿真器的情况,并且如果应用程序在Android仿真器上运行,我可以将IP智能地确定为10.0.2.2,那么您就可以获得额外的积分。

一旦您开始使用Gradle for Android和自定义构建类型,无论是直接作为构建引擎,还是使用Android Studio进行构建,这都是非常可能的。在Ant或Eclipse中,这将是一个烦人的设置。为什么不只是localhost或.local?.local出现与手动写入IP相同的问题(加上机器可能没有在网络中注册的名称),并且localhost不工作,因为代码实际上是在安卓设备上运行的,而不是在编译它的机器上运行的(服务器正在运行的位置)。