如何在android studio中定义本地环境变量?

时间:2015-01-06 05:50:43

标签: android git version-control android-studio android-gradle

我和一些同事正在构建应用程序并使用git进行版本控制。

我们的应用程序使用了Google Maps Api,它根据SHA1证书生成唯一的api密钥。要使用地图,必须在清单中引用api密钥

    ....

    <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="api_key_goes_here"/>

</application>

我们每个人都根据个人计算机上的应用程序构建生成了我们自己的api密钥,但我们希望在我们的每台计算机上都有一个属性文件,而不是检查版本控制,它存储了我们独特的api密钥,所以每次从存储库中提取时,我们都不必手动更改清单中的api密钥。

这可能吗?我知道android studio中有属性文件,但我不知道如何使用它们,特别是在这种情况下。

编辑:

完整清单:     

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-feature
    android:glEsVersion="0x00020000"
    android:required="true"/>



<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme"
    android:name=".Application">
    <activity android:name="com.misfiremedia.parseexperiment.app.DispatchActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="com.misfiremedia.parseexperiment.app.SignUpActivity">

    </activity>
    <activity
        android:name="com.misfiremedia.parseexperiment.app.WelcomeActivity"
        android:configChanges="orientation|keyboardHidden"/>

    <activity
        android:name=".EmailLogInActivity"
        android:configChanges="orientation|keyboardHidden"/>

    <activity
        android:name="com.misfiremedia.parseexperiment.app.HomeActivity"
        android:configChanges="orientation|keyboardHidden"/>

    <activity
        android:name="com.misfiremedia.parseexperiment.app.home.PostLocationActivity"
        android:configChanges="orientation|keyboardHidden"/>

    <activity
        android:name=".NewPostActivity"
        android:configChanges="orientation|keyboardHidden"/>

    <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version"/>
    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="THIS_IS_THE_KEY_WE_NEEDED_TO_HAVE_DIFFERENT"/>
</application>

1 个答案:

答案 0 :(得分:0)

在Android中有一个buildTypes概念,所以你可以创建三个buildTypes或你团队中需要多少个。

如下图所示,有一个,两个和三个,有三个不同的清单,每个清单都有不同的键。

enter image description here

现在团队成员可以选择他们各自的buildVariant和work,当有人从git中获取时,选择的buildVariant没有任何影响,它会维持选择。