Android开发中用Gradle获取本机(电脑)IP,并在Debug中使用
场景:
因为APP的服务器也是自己搭的,在本机运行,但是由于是动态IP,所以每次运行APP的时候都需要确定一下IP是否变化…
做法:
- 获取IP
打开模块的build.gradle
(默认就是app模块),添加自定义变量:
android {
....
defaultConfig {
...
buildConfigField("String", "IPAddress", "\"http://" + InetAddress.getLocalHost().getHostAddress() + "\"")
}
}
- 使用
在需要使用的Java类中通过BuildConfig
来获取:
protected String getBaseUrl() {
if (BuildConfig.DEBUG) {
return BuildConfig.IPAddress;
} else {
return BASE_URL;
}
}
其中的BuildConfig.IPAddress
就是我们获取到的本机IP
- 问题
如果提示IPAddress
找不到,请确定BuildConfig
导包是否正确,导入的应该是上面build.gradle
所在模块包的BuildConfig
;
如果导包正确,清一下缓存:
-
Build -> Clean Project
-
File -> Invalidate Caches / Restart...
-
Build -> Rebuild Project