单个 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 的回答将指导您完成该过程。
我正在为 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 的回答将指导您完成该过程。