Google Maps V2 – Fehler beim Aufblasen der Klasse Fragment

Ich versuche meine Hand und Android Application Development. Ich bin derzeit mit Eclipse (ich kann mich nicht erinnern, die Version, was auch immer das neueste ist). Ich habe eine Brücke überquert, wo ich einfach nicht fassen kann, was ich falsch mache. Ich versuche, die Google Maps V2 API zu verwenden. Ich habe mehrere Dokumente durchgemacht und mehrere Techniken ausprobiert, die alle zu demselben Fehler führen:

Android.view.Inflate Exception: Binary XML file line #2: Error inflating class fragment 

Ich habe mein Gesicht in die Schlüssel für 2 Tage geschlagen, die gerade versuchen zu begreifen, was ich hier falsch mache.

Dinge, die ich getan habe:

  1. Begonnen mit einer leeren Aktivität.
  2. Projekt -> Eigenschaften -> Android -> Projekt Build Target ist Google APIs – 4.2 – API 17 – Ich habe auch jede andere Option ausprobiert (so lange wie oben Version 3.0, fand es dokumentiert
  3. Das Google Play-Services_Lib wurde zu meinem Paket-Explorer hinzugefügt. Ich habe darauf hingewiesen, dass die google-play-services_lib tatsächlich a library .
  4. Projekt -> Eigenschaften -> Android -> Bibliothek -> Hinzufügen -> und ich wähle den Standort zum google-play-services_lib.
  5. Inbegriffen android-support-v4.jar als Abhängigkeit von meinem Projekt.

Ich habe so viele verschiedene Antworten von Fragen ausprobiert, die mir ähnlich sind, aber ohne Erfolg. 🙁 Ich kann diese Dinge in der Regel herausfinden, aber vielleicht bin ich einfach zu überladen.

Mein Paket Explorer Baum in Eclipse sieht aus wie

  1. Google-play-services_lib
  2. Svma

Hier ist der Code:>

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.SupportMapFragment"/> 

Manifest

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.testing.svma" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="17" /> <permission android:name="com.testing.svma.permission.MAPS_RECEIVE" android:protectionLevel="signature" /> <uses-permission android:name="com.testing.svma.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.testing.svma.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="SHA1_Generated_KEY_HERE" /> </application> <uses-feature android:glEsVersion="0x00020000" android:required="true" /> </manifest> 

MainActivity.java

 package com.testing.svma; 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); } } 

Referenzdokumente

  1. Ich habe "Fehler beim Aufblasen der Klasse Fragment" mit Google Map zu versuchen und beheben meine Probleme.

  2. Ich referenzierte Diese Google Maps Schnellstartanleitung , um mein Projekt zu erstellen.

  3. Ich hatte anfänglich mit dem Beispielcode von der Einführung in die Google Maps Android V2 Api begonnen

  4. Eine ganze Reihe von Sachen Fragen.

Also, SO Community, was mache ich falsch? Warum kann ich dieses einfache Konzept nicht fassen?

Vielen Dank im Voraus.

  • Google Maps v2 Marker zOrdering - Nach oben setzen
  • Erstellen Sie ein benutzerdefiniertes Info-Fenster in Google Maps V2
  • Wie bekomme ich die Koordinaten einer Karte beim Tippen mit MapFragment (nicht MapView)?
  • Diese IP-, Website- oder mobile Anwendung ist nicht berechtigt, diesen API-Schlüssel zu verwenden - Android
  • Android: automatisch wählen debug / release Maps v2 api Schlüssel?
  • Google Maps API v2 SupportMapFragment in ScrollView - Benutzer können die Karte nicht senkrecht scrollen
  • Zeichne über 4K Polylinien in android google maps
  • Android PlaceFilter Nutzung mit Google Places API
  • 13 Solutions collect form web for “Google Maps V2 – Fehler beim Aufblasen der Klasse Fragment”

    Ich habe den gleichen Code / selben Problem! Versuchen Sie Hinzufügen von Android: name = "com.testing.svma.MainActivity" zu "Fragment" im Layout! Es hat das Problem für mich gelöst

     <?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.SupportMapFragment" android:name="com.testing.svma.MainActivity"/> 

    Ich weiß, das ist wohl ein toter Thread, aber nur für den Fall, dass jemand hier stolpert hier mit einem identischen Problem – Ihr Manifest könnte die folgenden Meta-Informationen fehlen:

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

    Deklarieren Sie es im <application> -Element und Ihr Code sollte funktionieren. Ich lief in die gleiche Frage nach einem YouTube-Tutorial, dass dieser Schritt übersprungen und nur, wenn sorgfältig durch die ursprüngliche Google-Tutorial Ich bemerkte den fehlenden Code.

    Jedenfalls hoffe das hilft jemandem.

    Ich hatte das gleiche Problem, löste es, indem ich das Manifest änderte. Das ist mein Manifest.

      <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="example.gps" android:versionCode="1" android:versionName="1.0" > <permission android:name="example.gps.permission.MAPS_RECEIVE" android:protectionLevel="signature"></permission> <!-- Copied from Google Maps Library/AndroidManifest.xml. --> <uses-sdk android:minSdkVersion="9" android:targetSdkVersion="17"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.INTERNET"/> <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"/> <!-- My Location --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <!-- Maps API needs OpenGL ES 2.0. --> <uses-feature android:glEsVersion="0x00020000" android:required="true"/> <!-- End of copy. --> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" android:hardwareAccelerated="true" > <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" /> <activity android:name="example.gps.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> </application> </manifest> 

    Und die XML-Datei ist

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

    Die Java-Klasse ist

      public class MainActivity extends FragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } } 

    Das hat mein Problem gelöst

    Versuchen Sie, die Verknüpfung von Google-Play-Services zu Ihrem Projekt hinzuzufügen. Wenn Sie Eclipse verwenden, müssen Sie zu Project->Properties->Android und Add google-play-services Bibliotheksprojekt gehen.

    ALTERNATIVE,

    Sie können die Datei project.properties manuell ändern. Versuchen Sie, Verweis auf Ihre google_play_services Bibliothek hinzuzufügen. So sieht meine project.properties Datei aus wie:

     # Project target. target=android-17 android.library.reference.1=../../../android-sdks/extras/google/google_play_services/libproject/google-play-services_lib 

    In deinem Fall Pfad zu google-play-services lib kann anders sein

    Ich habe versucht, Ihren Code zu importieren und es stürzte auch. Wenn ich die Eigenschaften-Datei geändert habe – habe ich eine Karte

    Ich verbringe viel Zeit damit, dieses Problem zu lösen und nach vielem Lesen und Versuchen habe ich das Problem gelöst

    public class MainActivity extends FragmentActivity

    dafür

    public class MainActivity extends android.support.v4.app.FragmentActivity

    Ich hoffe das kann dir helfen

    Hatte alle oben genannten Antworten über einen Zeitraum von ein paar Tagen und dann schließlich das gearbeitet:

    Projekt -> Eigenschaften -> Android -> Projekt Build Target

    Änderte das Projekt-Build-Ziel auf Android 4.3 (API 18) und klickte an

    Im Manifest habe ich dann manuell die Min- und Ziel-Sdk-Versionen geändert:

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

    Dies entspricht nun dem target=android-18 in der project.properties-Datei (die aus der Projekt-Build-Ziel-Änderung resultierte, die wir zuerst gemacht haben)

    Ich habe auch versucht android:minSdkVersion="11" was funktionierte so die targetSdkVersion ist das wichtige Bit.

    Hoffe das hilft jemandem!

    Häufig ist das Problem in Manifest.xml , also sei sicher, dass du die richtigen Berechtigungen wie folgt schreibst: `

      <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.zako.android.locationapi.maps" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="17" /> <permission android:name="com.zako.android.locationapi.maps.permission.MAPS_RECEIVE" android:protectionLevel="signature" /> <!-- Required OpenGL ES 2.0. for Maps V2 --> <uses-feature android:glEsVersion="0x00020000" android:required="true" /> <!-- Requires OpenGL ES version 2 --> <uses-feature android:glEsVersion="0x00020000" android:required="true" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="com.zako.android.locationapi.maps.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" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.zako.android.locationapi.maps.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="......" /> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> </application> </manifest> 

    "

    Nicht vergessen <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> und <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />

    Ich hatte einen ähnlichen Fehler und ich denke, es kommt von diesem Punkt: Wenn ich die Google Play Service API einbeziehe, kopiere ich es nicht in meinen Arbeitsbereich, ich benutze das Original !!!

    Hinweis : Sie sollten auf eine Kopie der Bibliothek verweisen, die Sie in Ihren Quellbaum kopiert haben – Sie sollten nicht auf die Bibliothek aus dem Android SDK-Verzeichnis verweisen.

    Überprüfe diesen Punkt.

    Ich habe ein ähnliches Problem, dass ich mit der rechten Maustaste project->tools>add support library … und setup library gelöst

    Ich hoffe das hilft dir

    onDestroy() einfach die folgende Codezeile auf onDestroy()

     SupportMapFragment mapFragment = ((SupportMapFragment) getActivity().getSupportFragmentManager().findFragmentById(R.id.map_location_sharing)); if(mapFragment != null) { FragmentManager fM = getFragmentManager(); fM.beginTransaction().remove(mapFragment).commit(); 

    Es hat für mich gearbeitet. Hoffentlich wird auch für dich arbeiten. Vielen Dank

    Ich hatte diesen Fehler auch und es war wegen EXTERNER ERLÄUTERUNGEN. Es hat keinen Sinn, aber ich habe diese Erlaubnis hinzugefügt und seitdem hat alles gut geklappt.

    Ich hatte das gleiche Problem und ich habe den Fehler gemacht, nur einen der 2 folgenden Tags hinzuzufügen.

    Der eigentliche Fehler ist wirklich irreführend, wie Sie vielleicht an einige API Level UI Problem denken.

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

    Beachten Sie, dass Sie auch eines dieser beiden fehlen

    In einigen der Android 6.0 Handy diese Ausnahme ist Bug Wenn nicht in der Lage, flache XML Ursache durch

     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Configuration android.content.res.Resources.getConfiguration()' on a null object reference 

    Dann ist es aktiver Fehler in android https://issuetracker.google.com/issues/35827842

    Dies kann durch Hinzufügen gelöst werden

     android:hardwareAccelerated="true" adding in activity tag 
    Das Android ist ein Google Android Fan-Website, Alles über Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.