单个 Android Studio 项目的多个 API 键

Multiple API keys for Single Android Studio Project

我正在为 android 和 Google 地点 API 使用 Google 地图 API v2,两者都有不同的 api 键要添加到清单中,但是当我添加两个键时,出现多键错误。

是否可以为两个不同的 API 添加两个不同的密钥,如果不能,那么可能的解决方法是什么?

    <!-- Goolge Maps API Key -->
    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="AIzaSyD****************U6QybngOI" />

   <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="AIzaSyA******************KDaKCEJU" />

您需要将 gradle 与 Placeholders 一起使用。

<meta-data
    android:name="com.google.android.maps.v2.API_KEY"
    android:value="${mapsKey}" />

并在您的gradle中添加

android {
   buildTypes {
    debug {
      manifestPlaceholders = [ mapsKey:"AIzaSyD****************U6QybngOI"]
    }
   }
}

我通过对 Google Maps v2 和 Google Places API 使用相同的 GEO API 键解决了这个问题,即 Geo api -key 也可用于地方 api 和地图 api。

<!-- Goolge Maps API Key -->
<meta-data
    android:name="com.google.android.maps.v2.API_KEY"
    android:value="AIzaSyA******************KDaKCEJU" />    

<!-- Google Places API Key -->
<meta-data
    android:name="com.google.android.geo.API_KEY"
    android:value="AIzaSyA******************KDaKCEJU" />    

要添加发布和调试密钥,请更改您的 gradle 文件。您首先必须在 Google 开发者控制台中创建 API 键。

应用插件:'com.android.application'

android {
signingConfigs {

}
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
    applicationId 'com.your.app'
    minSdkVersion 19
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        manifestPlaceholders = [ mapsKey:"AIzaxxxxxxxxxxxxxxxxxxxvcgdXNA"]
    }
    debug {
        manifestPlaceholders = [ mapsKey:"AIzayyyyyyyyyyyyyyyyyyyyyyyC7NA"]
    }
}
productFlavors {
}
}

依赖项{ 编译文件树(包括:['*.jar'],目录:'libs') 测试编译 'junit:junit:4.12' 编译 'com.android.support:appcompat-v7:23.1.1' 编译 'com.android.support:design:23.1.1' 编译 'com.google.android.gms:play-services:8.4.0' }

您不应为此目的使用多个密钥。您只需为同一个 API 密钥启用两项服务,开发人员 console.I 认为 this 的回答将指导您完成该过程。