Android 在build.gradle中自动设置本地IP地址

Android 在build.gradle中自动设置本地IP地址,android,gradle,build.gradle,Android,Gradle,Build.gradle,我正在开发一款大量使用Rest服务的android应用程序。 为了开发和调试,我在本地(笔记本上)运行Rest服务器。在家里,我有静态IP地址,因此,我可以 我的build.gradle中的静态字符串。 但如果我在其他地方工作,我总是要检查笔记本的ip地址并编辑build.gradle 现在我很好奇:有没有办法将当前的本地IP地址自动插入我的build.gradle android { ... buildTypes { debug { .

我正在开发一款大量使用Rest服务的android应用程序。
为了开发和调试,我在本地(笔记本上)运行Rest服务器。在家里,我有静态IP地址,因此,我可以 我的build.gradle中的静态字符串。
但如果我在其他地方工作,我总是要检查笔记本的ip地址并编辑build.gradle

现在我很好奇:有没有办法将当前的本地IP地址自动插入我的build.gradle

android {
    ...

    buildTypes {
        debug {
            ...
            resValue "string", "host_name", "192.168.0.102" // <--- should be set automatically
        }
        release {
            ...
            resValue "string", "host_name", "example.com/rest/"
        }
}
android{
...
建筑类型{
调试{
...

resValue“string”、“host_name”、“192.168.0.102”//您可以使用Groovy方法查找本地IP地址:

resValue "string", "host_name", InetAddress.localHost.canonicalHostName

或者,您也可以使用
主机地址
而不是
标准主机名

,我正在添加awser,因为我将来可能需要它

在项目的build.graddle中,将buildConfigField行添加到默认配置中:

defaultConfig {
    applicationId "com.foo.bar"
    minSdkVersion 25
    targetSdkVersion 25
    buildConfigField 'String', 'IP_LOCAL_SERVER', "\"${InetAddress.localHost.hostAddress}\""
}
然后在代码中可以调用


localIP=BuildConfig.IP\u LOCAL\u SERVER;

既然Gradle是Groovy,如果你能用Groovy代码找到你的本地IP地址,你可以在你的
resValue
语句中使用这个值:应该这样写:buildConfigField'String','IP\u LOCAL\u SERVER',“\”${InetAddress localHost.hostAddress}\”感谢您发布此消息。不幸的是,它返回127.0.0.1:/它在windows计算机上运行,如果这改变了什么,因为我不再有权访问此项目,我无法运行测试抱歉,但它为我们工作。