Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


"Error al inflar fragmento de clase" con google map

Intenté hacer un proyecto de muestra usando Google Map, pero no pude. ¡Ayudame por favor!

Dispositivo de prueba: Android 4.0.4

Mensaje de error :

12-29 23:45:32.605: E/AndroidRuntime(9437): FATAL EXCEPTION: main 12-29 23:45:32.605: E/AndroidRuntime(9437): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.test_googlemap/com.example.test_googlemap.MainActivity}: android.view.InflateException: Binary XML file line #2: Error inflating class fragment 12-29 23:45:32.605: E/AndroidRuntime(9437): android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1968) 12-29 23:45:32.605: E/AndroidRuntime(9437): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1993) 12-29 23:45:32.605: E/AndroidRuntime(9437): at android.app.ActivityThread.access$600(ActivityThread.java:127) 12-29 23:45:32.605: E/AndroidRuntime(9437): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1159) 12-29 23:45:32.605: E/AndroidRuntime(9437): at android.os.Handler.dispatchMessage(Handler.java:99) 12-29 23:45:32.605: E/AndroidRuntime(9437): at android.os.Looper.loop(Looper.java:137) 12-29 23:45:32.605: E/AndroidRuntime(9437): at android.app.ActivityThread.main(ActivityThread.java:4507) 12-29 23:45:32.605: E/AndroidRuntime(9437): at java.lang.reflect.Method.invokeNative(Native Method) 12-29 23:45:32.605: E/AndroidRuntime(9437): at java.lang.reflect.Method.invoke(Method.java:511) 12-29 23:45:32.605: E/AndroidRuntime(9437): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790) 12-29 23:45:32.605: E/AndroidRuntime(9437): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557) 12-29 23:45:32.605: E/AndroidRuntime(9437): at dalvik.system.NativeStart.main(Native Method) 12-29 23:45:32.605: E/AndroidRuntime(9437): Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class fragment 12-29 23:45:32.605: E/AndroidRuntime(9437): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:697) 12-29 23:45:32.605: E/AndroidRuntime(9437): at android.view.LayoutInflater.inflate(LayoutInflater.java:466) 12-29 23:45:32.605: E/AndroidRuntime(9437): at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 12-29 23:45:32.605: E/AndroidRuntime(9437): at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 12-29 23:45:32.605: E/AndroidRuntime(9437): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:271) 12-29 23:45:32.605: E/AndroidRuntime(9437): at android.app.Activity.setContentView(Activity.java:1835) 12-29 23:45:32.605: E/AndroidRuntime(9437): at com.example.test_googlemap.MainActivity.onCreate(MainActivity.java:11) 12-29 23:45:32.605: E/AndroidRuntime(9437): at android.app.Activity.performCreate(Activity.java:4465) 12-29 23:45:32.605: E/AndroidRuntime(9437): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1052) 12-29 23:45:32.605: E/AndroidRuntime(9437): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1932) 12-29 23:45:32.605: E/AndroidRuntime(9437): ... 11 more 12-29 23:45:32.605: E/AndroidRuntime(9437): Caused by: java.lang.ClassCastException: com.google.android.gms.maps.MapFragment cannot be cast to android.support.v4.app.Fragment 12-29 23:45:32.605: E/AndroidRuntime(9437): at android.support.v4.app.Fragment.instantiate(Fragment.java:394) 12-29 23:45:32.605: E/AndroidRuntime(9437): at android.support.v4.app.Fragment.instantiate(Fragment.java:369) 12-29 23:45:32.605: E/AndroidRuntime(9437): at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:272) 12-29 23:45:32.605: E/AndroidRuntime(9437): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:669) 12-29 23:45:32.605: E/AndroidRuntime(9437): ... 20 more 

Código fuente :

 package com.example.test_googlemap; import android.os.Bundle; import android.support.v4.app.FragmentActivity; public class MainActivity extends FragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } } 

Activity_main.xml:

  <?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"/> 

Manifest.xml:

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.test_googlemap" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="15" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.test_googlemap.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="I removed it!"/> </application> <permission android:name="com.example.Test_GoogleMap.permission.MAPS_RECEIVE" android:protectionLevel="signature"/> <uses-permission android:name="com.example.Test_GoogleMap.permission.MAPS_RECEIVE"/> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-feature android:glEsVersion="0x00020000" android:required="true"/> </manifest> 

  • Google Maps Android API v2: Error al cargar mapa. No se pudo contactar con los servidores de Google
  • Androide, google, mapa, marcador, colocación
  • SecurityException al llamar a getLastKnownLocation
  • Diferenciar entre diferentes marcadores en Google Maps API v2 (identificadores únicos)
  • Deshabilitar el resaltado de clics de InfoWindows?
  • El nuevo procesamiento de gms.maps.MapView se retrasa un poco cuando está en un ListView?
  • Restauración del estado de MapView en rotación y en la parte posterior
  • Android establece los límites de GoolgeMap desde la base de datos de puntos
  • 10 Solutions collect form web for “"Error al inflar fragmento de clase" con google map”

    Está extendiendo FragmentActivity , lo que indica que está intentando utilizar el backport del paquete de soporte de Android de fragmentos. Sin embargo, su elemento <fragment> hace referencia a MapFragment , que es para la edición nativa de nivel 11 de API de fragmentos.

    Reemplazar MapFragment con MapFragment , y que debería aclarar este MapFragment específico.

    Tuve el mismo problema y cometí el error de añadir sólo una de las 2 siguientes etiquetas. Tenga en cuenta que también le falta uno de estos dos

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

    El error real es realmente engañoso, ya que podría estar pensando en algún problema de interfaz de usuario de nivel de API.

    Algunas veces usted está usando ambos –

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

    Asegúrese de que, no use ambos … si necesita Ubicación, Lugares y mapas, use geo.API_KEY y si necesita lugares y mapas, use maps.v2.API_KEY

    Este problema también se produce cuando no es capaz de inflar la clase Fragment mencionada en el archivo activity_main.xml (o el archivo XML presente en res / layout) debido a una incompatibilidad de la versión del SDK en el archivo andriod_manifest.xml.

    Las versiones correctas para los niveles de SDK para obtener el mapa en un emulador es la siguiente:

      <uses-sdk android:minSdkVersion="11" android:targetSdkVersion="21" /> 

    Incluso si es una pregunta ya contestada, este error también puede aparecer si llama al super.onCreateView en su fragmento. Se bloqueará en tiempo de ejecución.

    Asegúrese de haber anulado el método onCreateView e inflado su diseño:

     @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.my_fragment, container, false); return view; } 

    En mi caso, tuve que hacer dos correcciones para hacer que esta excepción desapareciera.

    1. La actividad debe extender FragmentActivity y no Actividad
    2. El archivo de manifiesto necesita un permiso de uso para ACCESS_NETWORK_STATE (mi archivo ya tenía permiso de INTERNET)

    Este defecto se ha resuelto en la biblioteca de juegos v9.0.0. https://code.google.com/p/gmaps-api-issues/issues/detail?id=9021#makechanges

    La respuesta aceptada es correcta, pero la información significativa que comparto con usted, puede ser cualquier persona que se enfrenta a la misma cuestión lo que me enfrento

    Si todo es woking igual que código de google entonces compruebe por favor el archivo del manifiesto en mi caso agregé la llave del geo y la llave del mapa que es porqué ocurre excepción,

    Nota: no agregue dos claves en el archivo de manifiesto.

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

    Código anterior y añadir 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"/> 

    Utilice el permiso de Internet para ser hijo directo de archivo de manifiesto .. Como abajo y tratar ..

    También Usted debe tener lo siguiente para usar mapa:

    1. Debe ampliar la Map activity en su archivo de actividades

    2.Should tener la llave del API no vi ninguna llave en su código.

     <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.test_googlemap" android:versionCode="1" android:versionName="1.0" > <uses-permission android:name="android.permission.INTERNET"/> <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="15" /> 
    1. ¿Tiene una clave de API de Google Map válida?
    2. Intenta usar

       public class MainActivity extends MapActivity{ ... } 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.