Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
每个开发者的Android变量_Android_Git_Android Studio_Version Control - Fatal编程技术网

每个开发者的Android变量

每个开发者的Android变量,android,git,android-studio,version-control,Android,Git,Android Studio,Version Control,我的团队与Git合作,现在我们正在构建一个android应用程序。此应用程序使用我们的Web服务,每个开发人员在开发时都在自己的计算机上构建Web服务 由于我们不能在应用程序内部使用localhost(因为它指向设备本身),我们必须指定网络地址(例如192.168.1.123),现在它已经硬编码了。问题是,大多数情况下,我们的网络地址是不一样的,然后每个开发人员必须手动编辑地址,以便编码 我正试图找出更有趣的方法来完成这个过程。我的第一个猜测是我可以做一些类似Rails的config/appli

我的团队与Git合作,现在我们正在构建一个android应用程序。此应用程序使用我们的Web服务,每个开发人员在开发时都在自己的计算机上构建Web服务

由于我们不能在应用程序内部使用
localhost
(因为它指向设备本身),我们必须指定网络地址(例如
192.168.1.123
),现在它已经硬编码了。问题是,大多数情况下,我们的网络地址是不一样的,然后每个开发人员必须手动编辑地址,以便编码

我正试图找出更有趣的方法来完成这个过程。我的第一个猜测是我可以做一些类似Rails的
config/application.yml
或者类似Spring Boot的
application.properties
。该文件将位于
.gitignore
中,并且在设置其开发环境时,每个开发人员将在其中的变量中设置其网络地址。这种方法很好,主要是因为我们可以在CI服务器中设置此文件,然后可以在生产环境中自动部署(例如,指向
my application.com
,而不是开发人员网络地址)

我一直在思考的另一种方法是使用类似于
my application.dev
的东西,让主机(在使用emulator时)在其hosts文件中解析,并循环。这种方法有两个主要问题:a)我们希望将设置保存在项目文件夹中。b) 在部署到生产环境时,我们需要手动编辑此内容

那么,有没有办法做到这一点?请记住,我们希望将此设置放在项目的文件夹中,而不依赖于IDE


提前谢谢

定义
属性

def Properties props = new Properties()
props.load(new FileInputStream(rootProject.file('app/custom.properties')))
后来:

buildConfigField "String", "CUSTOM_FIELD", '"'+props['customFieldName']+'"'
您的
自定义.properties
应该包含以下内容:

customFieldName=customString
步骤#1:在项目根目录中的
gradle.properties
中定义一个属性,该属性包含有问题的IP地址,例如:

DEV_SERVER_URL=https://192.168.1.123
步骤2:在
app/build.gradle
文件中,通过
buildConfigField
或可能通过
resValue
公开该属性,使Java代码可以通过
BuildConfig
或字符串资源使用该属性。要获得额外的积分,请仅在
debug
build类型中使用属性,使用
release
中的生产值(可能指向生产Web服务器)。例如:

    debug {
      buildConfigField "String", "SERVER_URL", '"'+DEV_SERVER_URL+'"'
    }

    release {
      buildConfigField "String", "SERVER_URL", '"https://prod.this-is-so-fake.com"'
    }

步骤3:修改Java代码以引用
BuildConfig
字段或在步骤2中设置的字符串资源。

answer@AntonShkurenko:对不起。我的目标是打字。。。更多慢慢地。。。在里面这个未来…:-)