2017-07-07 172 views
0

我使用以下方法在我的android项目中存储服务器IP地址,以便服务器url可以被其他类访问。在Android中避免硬编码的IP地址

interface GlobalConstants{ 
     String SERVER_URL = "192.168.xx.xx"; 
    } 

但是,这种方法需要每次IP地址更改时重新编译,反编译将公开服务器url。有没有更好的方法来初始化SERVER_URL?

我试过System.setProperty()和System.getProperty(),但它仍然在运行时完成。有没有办法像配置文件一样来存储IP地址并使其可配置?

在此先感谢。 :)

+0

我认为你没有办法绕过编译和构建apk。 –

+0

为什么世界上不只是使用DNS? – chrylis

+0

@chrylis这是试图通过无线访问PC的本地主机来测试代码。 – user54321

回答

0

可以在gradle.build

buildTypes { 
     debug { 
      buildConfigField "String", "SERVER_URL", "\"http:TempRequest\"" 
     } 
     release { 
      buildConfigField "String", "SERVER_URL", "\"http:TempRequest\"" 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 

然后你就可以使用BuildConfig类,机器人工作室将产生接取它做到这一点。

例如

String url = BuildConfig.SERVER_URL + "endpoint"; 

我希望这会帮助你。

+0

这是我一直在寻找的东西,虽然它并没有消除重新编译的需要。谢谢。 – user54321

+0

欢迎您:) –