studio mapview google generar example android google-maps key android-manifest google-maps-android-api-2

mapview - map fragment android studio



Android: ¿elige automáticamente la clave de depuración/versión de Maps v2 api? (4)

Estoy usando Google Maps v2 API en mi proyecto. En Google Maps v2, la clave de la API de depuración / publicación se define en AndroidManifest.xml . He visto el enlace pero en esa clave del mapa está definido en un archivo de diseño xml que no está en AndroidManifest.xml . Entonces, ¿puedo definir las claves de depuración y liberación para mi proyecto en AndroidManifest.xml ?

Quiero algo como esto en AndroidManifest.xml :

Si el modo de depuración:

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

Si el modo de liberación:

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


Una de las mejores maneras de usar el archivo build.gradle en la última versión de Android 5.0 y Android 6.0 (API 20, 21,22,23)

Bueno, puedes usarlos simplemente sin crear sabores de producto en gradle . Este es otro ejemplo que podemos lograr a través de Gradle . Puedes lograrlo con dos simples pasos.

  • Agregue valor personalizado al archivo manifestplaceholders de manifestplaceholders .

Vea abajo

buildTypes { debug { manifestPlaceholders = [ mapApiKeyValue:"GHjaSyAjlyp3O831lgaonHMXsd-_DpQ3002x3S4"] } release { manifestPlaceholders = [ mapApiKeyValue:"AIzaSyAuMGDLr2HeuRed4JA0CrdYYdZRjeC3EA"] } }

  • Edite el archivo de manifiesto como a continuación.

parte de mi archivo manifiesto

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

Esta solución funciona para los últimos Android 5.0 y Android 6.0 (API 20, 21,22,23)

Actualizado el 3/05/2018 para Xamarin Form y Xamarin Native Apps

Abra AssemblyInfo.cs en Android Project y agregue el siguiente código

#if DEBUG [assembly: MetaData("com.google.android.maps.v2.API_KEY", Value = "DebugKey123123123")] #else [assembly: MetaData("com.google.android.maps.v2.API_KEY", Value = "ReleaseKey123123123")] #endif

Para verificar el archivo AndroidManifest, vaya a la carpeta obj/Debug/android y abra el archivo de manifiesto y verifique la metainformación,

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


Como está usando gradle, puede hacer lo siguiente:

build.gradle

android { .. .. ... buildTypes { debug { resValue "string", "google_maps_api_key", "[YOUR DEV KEY]" } release { resValue "string", "google_maps_api_key", "[YOUR PROD KEY]" } } }

Y en su AndroidManifest.xml

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

De esta forma, solo tienes un AndroidManifest.xml y estableces un valor en función de tu tipo de compilación. Espero que esto ayude.


Para las organizaciones que necesitan mantener claves separadas, puede colocarlas en directorios separados en Android Studio. Asegúrese de que el subdirectorio de src que utiliza coincida con un flavor o buildType

Desde la construcción de su proyecto con Gradle :

To build each version of your app, the build system combines source code and resources from: src/main/ - the main source directory (common to all variants) src/<buildType>/ - the build type source directory src/<flavorName>/ - the flavor source directory

En projectroot/yourapp/build.gradle :

buildTypes { debug { runProguard false debuggable true } release { runProguard true debuggable false ... }

En projectroot/yourapp/src/main/AndroidManifest.xml :

... <application android:name=".MyApplication" android:theme="@style/Theme"> <!-- Don''t put your key here --> ...

En projectroot/yourapp/src/debug/AndroidManifest.xml , califique completamente el nombre de la aplicación.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"> <application android:name="com.hipmunk.android.HipmunkApplication"> <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="yourdebugkey" /> </application> </manifest>

En projectroot/yourapp/src/release/AndroidManifest.xml :

<manifest xmlns:android="http://schemas.android.com/apk/res/android"> <application android:name="com.hipmunk.android.HipmunkApplication"> <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="release key" /> </application> </manifest>


Resolví este problema usando estos pasos:

En Google Developer API Console

  1. Haga clic en Crear nueva clave de Android ...
  2. En cmd.exe / Terminal: keytool -list -v -keystore mystore.keystore
  3. Contraseña: android
  4. Ahora ingrese la SHA1 key;package name para la depuración y presione enter
  5. Ingrese la SHA1 key;package name para la publicación
  6. Haga clic en Crear

Ahora usa esta clave de API tu proyecto

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