solucion - Imposible instanciar android.gms.maps.MapFragment
java.lang.noclassdeffounderror ubuntu (30)
Intento hacer una demostración con google maps android v2 con una actividad muy simple, solo copie el código de la página de google: https://developers.google.com/maps/documentation/android/start#adding_the_api_key_to_your_application
para la actividad:
package com.example.mapdemo;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
para el diseño:
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.MapFragment"/>
Solicité una clave api según la página y modifiqué mi archivo androidmanifest.xml, como este:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.wenhai.driverschool"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<uses-permission android:name="android.permission.INTERNET" />
<!-- add for map2 -->
<permission
android:name="com.example.mapdemo.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="com.example.mapdemo.permission.MAPS_RECEIVE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<!-- External storage for caching. -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- Maps API needs OpenGL ES 2.0. -->
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyDVAF4WaVSVRDKJx87It8OSFP5txQcPabc" />
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
También hago referencia a mi aplicación en google-play-services_lib en eclipse.
pero cada vez, informe de error en logcat de esta manera:
2-05 16:22:53.609: E/AndroidRuntime(21623): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.wenhai.driverschool/com.wenhai.driverschool.MainActivity}: android.view.InflateException: Binary XML file line #2: Error inflating class fragment
12-05 16:22:53.609: E/AndroidRuntime(21623): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1967)
12-05 16:22:53.609: E/AndroidRuntime(21623): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992)
12-05 16:22:53.609: E/AndroidRuntime(21623): at android.app.ActivityThread.access$600(ActivityThread.java:127)
12-05 16:22:53.609: E/AndroidRuntime(21623): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1158)
12-05 16:22:53.609: E/AndroidRuntime(21623): at android.os.Handler.dispatchMessage(Handler.java:99)
12-05 16:22:53.609: E/AndroidRuntime(21623): at android.os.Looper.loop(Looper.java:137)
12-05 16:22:53.609: E/AndroidRuntime(21623): at android.app.ActivityThread.main(ActivityThread.java:4441)
12-05 16:22:53.609: E/AndroidRuntime(21623): at java.lang.reflect.Method.invokeNative(Native Method)
12-05 16:22:53.609: E/AndroidRuntime(21623): at java.lang.reflect.Method.invoke(Method.java:511)
12-05 16:22:53.609: E/AndroidRuntime(21623): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:823)
12-05 16:22:53.609: E/AndroidRuntime(21623): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:590)
12-05 16:22:53.609: E/AndroidRuntime(21623): at dalvik.system.NativeStart.main(Native Method)
12-05 16:22:53.609: E/AndroidRuntime(21623): Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class fragment
12-05 16:22:53.609: E/AndroidRuntime(21623): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:697)
12-05 16:22:53.609: E/AndroidRuntime(21623): at android.view.LayoutInflater.inflate(LayoutInflater.java:466)
12-05 16:22:53.609: E/AndroidRuntime(21623): at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
12-05 16:22:53.609: E/AndroidRuntime(21623): at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
12-05 16:22:53.609: E/AndroidRuntime(21623): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:255)
12-05 16:22:53.609: E/AndroidRuntime(21623): at android.app.Activity.setContentView(Activity.java:1835)
12-05 16:22:53.609: E/AndroidRuntime(21623): at com.wenhai.driverschool.MainActivity.onCreate(MainActivity.java:11)
12-05 16:22:53.609: E/AndroidRuntime(21623): at android.app.Activity.performCreate(Activity.java:4465)
12-05 16:22:53.609: E/AndroidRuntime(21623): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
12-05 16:22:53.609: E/AndroidRuntime(21623): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1931)
12-05 16:22:53.609: E/AndroidRuntime(21623): ... 11 more
12-05 16:22:53.609: E/AndroidRuntime(21623): Caused by: android.app.Fragment$InstantiationException: Unable to instantiate fragment com.google.android.gms.maps.MapFragment: make sure class name exists, is public, and has an empty constructor that is public
12-05 16:22:53.609: E/AndroidRuntime(21623): at android.app.Fragment.instantiate(Fragment.java:581)
12-05 16:22:53.609: E/AndroidRuntime(21623): at android.app.Fragment.instantiate(Fragment.java:549)
12-05 16:22:53.609: E/AndroidRuntime(21623): at android.app.Activity.onCreateView(Activity.java:4235)
12-05 16:22:53.609: E/AndroidRuntime(21623): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:673)
12-05 16:22:53.609: E/AndroidRuntime(21623): ... 20 more
12-05 16:22:53.609: E/AndroidRuntime(21623): Caused by: java.lang.ClassNotFoundException: com.google.android.gms.maps.MapFragment
12-05 16:22:53.609: E/AndroidRuntime(21623): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
12-05 16:22:53.609: E/AndroidRuntime(21623): at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
12-05 16:22:53.609: E/AndroidRuntime(21623): at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
12-05 16:22:53.609: E/AndroidRuntime(21623): at android.app.Fragment.instantiate(Fragment.java:571)
12-05 16:22:53.609: E/AndroidRuntime(21623): ... 23 more
No sé el motivo de esto.
Si agrego google-play-services.jar a mi proyecto, se generará otro error:
12-05 16:34:23.269: E/AndroidRuntime(22638): FATAL EXCEPTION: main
12-05 16:34:23.269: E/AndroidRuntime(22638): java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable
12-05 16:34:23.269: E/AndroidRuntime(22638): at com.google.android.gms.maps.GoogleMapOptions.createFromAttributes(Unknown Source)
12-05 16:34:23.269: E/AndroidRuntime(22638): at com.google.android.gms.maps.MapFragment.onInflate(Unknown Source)
12-05 16:34:23.269: E/AndroidRuntime(22638): at android.app.Activity.onCreateView(Activity.java:4242)
12-05 16:34:23.269: E/AndroidRuntime(22638): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:673)
12-05 16:34:23.269: E/AndroidRuntime(22638): at android.view.LayoutInflater.inflate(LayoutInflater.java:466)
12-05 16:34:23.269: E/AndroidRuntime(22638): at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
12-05 16:34:23.269: E/AndroidRuntime(22638): at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
12-05 16:34:23.269: E/AndroidRuntime(22638): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:255)
12-05 16:34:23.269: E/AndroidRuntime(22638): at android.app.Activity.setContentView(Activity.java:1835)
12-05 16:34:23.269: E/AndroidRuntime(22638): at com.wenhai.driverschool.MainActivity.onCreate(MainActivity.java:11)
12-05 16:34:23.269: E/AndroidRuntime(22638): at android.app.Activity.performCreate(Activity.java:4465)
12-05 16:34:23.269: E/AndroidRuntime(22638): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
12-05 16:34:23.269: E/AndroidRuntime(22638): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1931)
12-05 16:34:23.269: E/AndroidRuntime(22638): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992)
12-05 16:34:23.269: E/AndroidRuntime(22638): at android.app.ActivityThread.access$600(ActivityThread.java:127)
12-05 16:34:23.269: E/AndroidRuntime(22638): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1158)
12-05 16:34:23.269: E/AndroidRuntime(22638): at android.os.Handler.dispatchMessage(Handler.java:99)
12-05 16:34:23.269: E/AndroidRuntime(22638): at android.os.Looper.loop(Looper.java:137)
12-05 16:34:23.269: E/AndroidRuntime(22638): at android.app.ActivityThread.main(ActivityThread.java:4441)
12-05 16:34:23.269: E/AndroidRuntime(22638): at java.lang.reflect.Method.invokeNative(Native Method)
12-05 16:34:23.269: E/AndroidRuntime(22638): at java.lang.reflect.Method.invoke(Method.java:511)
12-05 16:34:23.269: E/AndroidRuntime(22638): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:823)
12-05 16:34:23.269: E/AndroidRuntime(22638): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:590)
12-05 16:34:23.269: E/AndroidRuntime(22638): at dalvik.system.NativeStart.main(Native Method)
¿Alguien puede ayudarme sobre esto?
- Por ahora, la demostración puede funcionar siguiendo este enlace :
- Por ejemplo, demostración, también puede funcionar:
Agregue dos jar en el directorio libs de su proyecto. Sigue la información a continuación. En particular, creo que debes:
- Importe la fuente real del proyecto "google-play-services_lib" y vincúlela como una biblioteca de Android.
- Haga esto a través de Proyecto -> Propiedades -> Android -> Biblioteca, Agregar -> google-play-services_lib (puede hacer clic con el botón derecho en su proyecto y seleccionar Propiedades, luego seleccionar Android).
- No lo agregue como un Proyecto dependiente a través de la "Ruta de compilación de Java" para su proyecto, eso no funcionó para mí.
- Agregue google-play-services.jar y android-support-v4.jar en una carpeta "libs" en el proyecto de ejemplo y agréguelos como "JAR externos externos" en "Build Path -> Configure Build Path -> Libraries" .
Descubrí que este segundo paso era necesario ya que estaba alcanzando el mismo error exacto que cuando intentas usar el código de muestra. El primer paso fue necesario para evitar un NoClassDefFoundError en com.google.android.gms.R $ styleable en mi proyecto real.
También tuve que hacer una compilación limpia y desinstalar la aplicación del dispositivo (desde un intento de prueba anterior) antes de que el código de muestra funcionara.
Muchas gracias tu ayuda.
¡No te olvides de construir el google-play-services_lib! Es por eso que muestra el mensaje "No se pudo encontrar google-play .... apk". Para mí, en Eclipse, no se necesitaban otros hacks, sino para hacer referencia al proyecto desde el submenú de Android, no desde la ruta de compilación de Java, las referencias de proyectos o cualquier otra cosa. No había frascos colocados manualmente, en realidad no se necesitaba nada para mí.
Además de muchas de las cosas mencionadas anteriormente, para mí era importante marcar el .jar también en Order and Export. Por lo que puedo decir, generalmente no se menciona y para mí fue crucial.
Agregue esta dependencia en build.gradle
compile ''com.google.android.gms:play-services:6.5.87
''
Ahora esto funciona
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.MapFragment"
android:layout_width="match_parent"
android:layout_height="388dp"
android:layout_weight="0.40" />
</LinearLayout>
Como el mapa de Google ahora está envuelto en Fragmentos, amplíe su actividad desde FragmetActivity no solo Actividad y asegúrese de que si usa " supporrtMapFragment ", entonces está importando Fragment del paquete de soporte solamente.
Creo que vale la pena mencionar (después de pasar más de una hora sacándome el pelo) que si está utilizando MapFragment no puede usar FragmentActivity (SupportMapFragment funcionará bien en este entorno). Estaba a punto de darme por vencido.
En Eclipse, es necesario crear un proyecto separado para los servicios de google play y hacer referencia a él como una lib de su proyecto de Android en lugar de simplemente agregarle el jar. En mi computadora, importé el proyecto Eclipse de los servicios de Google Play directamente desde D: / adt-bundle-windows-x86-20130219 / sdk / extras / google / google_play_services / libproject / google-play-services_lib y lo configuré en el proyecto Lib, así que podría hacer referencia desde mi proyecto de Android.
En IntelliJ IDEA (actualizado para IntelliJ 12):
- Cree un archivo
~/android-sdk/extras/google/google_play_services/libproject/google-play-services_lib/src/dummy.java
contenga laclass dummy {}
. - Archivo-> Importar módulo->
~/android-sdk/extras/google/google_play_services/libproject/google-play-services_lib
- Crear un módulo a partir de fuentes existentes
- Siguiente-> Siguiente-> Siguiente-> Siguiente-> Finalizar
- Archivo-> Estructura del proyecto-> Módulos-> YourApp
- + -> Módulo Dependencia-> Google-play-services_lib (El botón + se encuentra en la esquina superior derecha del cuadro de diálogo).
- + -> Frascos o directorios->
~/android-sdk/extras/google/google_play_services/libproject/google-play-services_lib/libs/google-play-services.jar
- Use las flechas arriba / abajo para mover
<Module source>
al final de la lista.
Puede eliminar dummy.java
si lo desea.
Editar: Después de usar esto por un tiempo, he descubierto que hay un pequeño error / error. IDEA a veces se queja de no poder abrir un archivo de proyecto .iml
en el directorio google-play-services_lib
, a pesar de que nunca le contó que había un proyecto allí. Si eso sucede, la reconstrucción del proyecto resuelve el problema, al menos hasta que vuelva.
En mi proyecto Intellij Idea, tuve que agregar ambos: google-play-services_lib y google-play-services.jar al proyecto. Y en el proyecto google-play-services_lib agrega google-play-services.jar también. Después de eso, si hiciste todas las cosas, eso se describe developers.google.com/maps/documentation/android/start , correcto, tu aplicación debería estar funcionando.
En su MainActivity
(o en cada actividad que desee colocar en el mapa v2), debe extender FragmentActivity
o Activity
o bien desea utilizar SupportMapFragment
o simplemente MapFragment
. Use la clase MapFragment
solo si está apuntando a API 12 y superior. De lo contrario, use SupportMapFragment
. Es una diferencia sutil, pero comete el error.
Enfrenté el mismo problema y me llevó dos días encontrar una solución que funcionara para mí:
- Eliminar el proyecto
google-play-services_lib
(hacer clic con el botón derecho en la eliminación del proyecto) - Eliminar el proyecto que contiene la demo de Google maps (
MainActivity
en mi caso) si tiene uno - Copie el proyecto google-play-services_lib (extras / google / google_play_services / libproject / google-play-services_lib) en su espacio de trabajo y luego impórtelo como proyecto general (Archivo-> importar-> proyectos existentes en workspase)
- Haga clic derecho en su proyecto (en el que desea cargar el mapa) -> Android -> agregar (en la biblioteca) google-play-services_lib
Debería ver algo como esto :
Nota: No debe tener algo como esto (el proyecto debe remitirse desde su área de trabajo):
Creo que el problema es que los proyectos de tow están haciendo referencia a la misma biblioteca
Enfrenté este problema al usar Android SDK para x86 en una máquina con Windows 7 de 64 bits. Descargué la versión de Android SDK de 64 bits, hice que Eclipse lo viera en la ventana> Preferencias> Android> ubicación del SDK y el problema se detuvo.
Escribí en la actividad
import com.google.android.gms.maps.SupportMapFragment;
y Eclipse me dio el ícono rojo> clic> arreglar configuración de proyecto ...> agregar archivo google-play-services.jar
¡Y finalmente funcionó!
Esto podría ser de ayuda para algunos. Tenía dos proyectos, uno que era una copia de la demostración de Google y que funcionó bien. Otro copié en un proyecto existente y no pude ejecutarlo. Y en el segundo fallo recibí el mensaje de error descrito anteriormente.
Mi problema se debió a una biblioteca no habilitada, aunque reconstruí, importé varias veces, etc. Haga clic derecho en el proyecto -> Propiedades -> Ruta de compilación de Java -> pestaña Orden y exportación. En el proyecto anómalo, la pestaña "Librerías privadas de Android" no estaba marcada.
Una vez que lo habilité, el proyecto funcionó bien.
Fue un poco difícil porque era diferente en la API anterior, pero encontré una solución. Google dice qué hacer http://developer.android.com/google/play-services/setup.html ; de acuerdo con la pregunta, necesitamos las clases com.google.android.gms
, por lo que es necesario configurar los google play services
, que es solo una biblioteca que tenemos que agregar a nuestro proyecto como este http://developer.android.com/tools/projects/projects-eclipse.html#ReferencingLibraryProject . Es muy importante importar la copia de la biblioteca del proyecto google-play-services_lib
no la que está en la carpeta sdk. Una vez hecho esto, el tutorial de Google funciona a la perfección.
No entiendo la verdadera solución pero la resuelvo después de hacer estas cosas:
- Marque ''Copiar proyectos en el espacio de trabajo'' al importar google-play-services_lib
- No configure minSdkVersion debajo de 13
- Si obtiene un error con el tema, intente cambiar su tema de diseño a cualquier tema del sistema
- Volver a crear su proyecto desde cero o revertir todo si lo obtiene de algún lugar
Para encargarse de las importaciones relacionadas con Drive, necesitará algunos botes del Google Drive SDK
. Hay algunos pocos grandes, por lo que es posible que desee agregarlos individualmente para adaptarse a su aplicación.
Si eso no resuelve las com.google.android.gms.* imports
, Se the Google Play Services add-on needs to be installed (from Extras -> Google Play Services in the SDK Manager) and google-play-services.jar needs to be added to your build path.
EDITAR:
En este caso, se necesitaron los siguientes frascos:
google-api-services-drive-v2-rev1-1.7.2-beta.jar
google-http-client-1.10.3-beta.jar
google-http-client-android2-1.10.3-beta.jar
google-oauth-client-1.10.1-beta.jar
google-api-client-android2-1.10.3-beta.jar
google-api-client-1.10.3-beta.jar
Primer paso http://developer.android.com/tools/projects/projects-eclipse.html#ReferencingLibraryProject Segundo paso http://developer.android.com/google/play-services/setup.html En esa página tiene una NOTA, pero no prestamos atención
Nota: Debería hacer referencia a una copia de la biblioteca que copió en su árbol de fuentes; no debe hacer referencia a la biblioteca desde el directorio SDK de Android.
Pero creo que no es una buena forma de documentación :)
Se afirma en el mismo tutorial que
Tenga en cuenta que el siguiente código solo es útil para probar su configuración en una aplicación que apunta a Android API 12 o posterior
Simplemente cambie su versión min SDK a 12 y funcionará
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
Haven ya probó la solución de Aurel para versiones anteriores de la API.
Solo intenta reemplazar tu diseño con:
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="wrap_content"
android:layout_height="match_parent" />
¡Necesita utilizar el SupportMapFragment para API bajo 11!
Aurel
Tal vez debes destacar esto:
Nota: los servicios de Google Play no son compatibles con el emulador de Android: para desarrollar usando las API, debe proporcionar un dispositivo de desarrollo como un teléfono o tableta Android.
http://developer.android.com/google/play-services/setup.html
Debe proporcionar un dispositivo de desarrollo físico en el que pueda ejecutar y depurar su aplicación. No uses emulador. No funciona
Tenía todo lo que decían todos y resolví el error simplemente llamando al super.onCreate(savedInstanceState);
como primera instrucción en el método oncreate; antes de que fuera la última línea en el método. : | perdido todo el día.
Tengo el mismo problema y solo instalé Play Services de SDK y todos los problemas salieron volando.
Tengo este problema. Acabo de actualizar los servicios de Google Play y me aseguro de que está agregando el proyecto google-play-service-lib como dependencia. Está funcionando ahora sin ningún cambio de código, pero sigo recibiendo "No se encontraron los recursos de los servicios de Google Play". . Verifique la configuración de su proyecto para asegurarse de que los recursos estén incluidos ". pero esto solo ocurre cuando tienes setMyLocationEnabled (verdadero), ¿alguien sabe por qué?
Tuve el mismo problema en mi LG-E730 con Android 2.3.4. El error aparece antes de actualizar el servicio Google Play en mi teléfono.
prueba esto
http://developer.android.com/tools/projects/projects-eclipse.html#ReferencingLibraryProject
Acabo de agregar el proyecto de servicios de google y agregué una referencia en la propiedad de mi proyecto-> Android
se relacionan con esta sugerencia: https://.com/a/20215481/3080835
también tuve que agregar esto al elemento Application
en el Manifiesto:
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
y funcionó a la perfección.
Agregue servicios de Google Play a su proyecto
Para que las API de servicios de Google Play estén disponibles para tu aplicación:
Sigue los pasos que se muestran en este enlace: http://developer.android.com/google/play-services/setup.html#Setup
Actualizar
Siga los fragmentos de código de Commonsware MapV2 para comprender mejor.
(Está presente en la edición Omnibus)
El siguiente fragmento está funcionando bien en mi extremo. Elijo usar SupportMapFragment
.
No olvides agregar google-play-services.jar
en tu proyecto.
MainActivity.java
package com.example.newmapview;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import com.google.android.gms.maps.SupportMapFragment;
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SupportMapFragment fragment = new SupportMapFragment();
getSupportFragmentManager().beginTransaction()
.add(android.R.id.content, fragment).commit();
}
}
manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.newmapview"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16" />
<permission
android:name="com.example.newmapview.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="com.example.newmapview.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.newmapview.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="XXXXX" />
</application>
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
</manifest>
Aquí está el resultado
Espero que esto ayude
Por favor lea cuidadosamente
Si todo funciona igual que el código de Google, compruebe el archivo de manifiesto en mi caso, agregué la clave geográfica y la clave del mapa, por eso ocurre una excepción.
Nota: no agregue dos claves en el archivo de manifiesto, elimine la clave del mapa
meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="@string/google_maps_key"/>
agregue este código
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/auto_location"/>
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version"/>