2013-01-17 4 views
2

J'essaie juste d'afficher une carte sur l'écran, mais cela ne fonctionne pas. Je reçois un RuntimeException:google map - runtimeexception - erreur de gonflement du fragment de classe

01-17 19:16:47.066: E/AndroidRuntime(6605): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.maptest/com.example.maptest.MainActivity}: android.view.InflateException: Binary XML file line #7: Error inflating class fragment 

Java:

import com.google.android.gms.common.GooglePlayServicesUtil; 
import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.SupportMapFragment; 
import com.google.android.gms.maps.MapFragment; 
import com.google.android.maps.MapActivity; 
import com.google.android.maps.MapView; 
import android.os.Bundle; 
import android.app.Activity; 
import android.support.v4.app.FragmentActivity; 
import android.support.v4.app.Fragment; 




public class MainActivity extends FragmentActivity { 
getSupportFragmentManager().findFragmentById(R.id.map)) 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext()); 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 


    SupportMapFragment fragment = new SupportMapFragment(); 
    getSupportFragmentManager().beginTransaction() 
      .add(android.R.id.content, fragment).commit(); 

    setContentView(R.layout.activity_main); 

    GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext()); 

    GoogleMap map = ((SupportMapFragment) 
getSupportFragmentManager().findFragmentById(R.id.map)).getMap(); 
} 


} 

Manifest

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.maptest" 
    android:versionCode="1" 
    android:versionName="1.0" > 

<uses-sdk 
    android:minSdkVersion="8" 
      android:targetSdkVersion="16"/> 
    <permission 
     android:name="com.example.maptest.permission.MAPS_RECEIVE" 
     android:protectionLevel="signature"/> 
    <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="com.example.mapdemo.permission.MAPS_RECEIVE"/> 


    <uses-feature 
     android:glEsVersion="0x00020000" 
     android:required="true"/> 
<application 
    android:allowBackup="true" 
    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="removed"/> 


    <activity 
     android:name="com.example.maptest.MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <category android:name="android.intent.category.EMBED"/> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 

    </activity> 
      <uses-library android:name="com.google.android.maps"/> 
</application> 

</manifest> 

layout xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".MainActivity" > 

    <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="match_parent" 
    android:layout_height="match_parent" 
    class="com.google.android.gms.maps.MapFragment"/> 
</RelativeLayout> 

La clé est v2 et j'ai suivi strictement le tutoriel Google j'ai trouvé. J'ai également importé des services de jeu Android.

Quelqu'un pourrait-il m'aider? :)

+0

dans votre méthode oncreate setContentView (R.layout.activity_main); appelé deux fois –

Répondre

3

J'ai rencontré une erreur similaire lors de l'utilisation de Map API v2. Cependant, je ne sais pas si cela vous aidera.

Mon problème était que google-play-services_lib devait être inclus en tant que bibliothèque. Dans Eclipse, vous pouvez procéder comme suit:

  1. Utilisez le Gestionnaire de SDK Android pour télécharger la bibliothèque.
  2. Créez un nouveau "Projet Android à partir du code existant" où vous pointez sur google-play-services_lib dans le dossier que vous avez utilisé pour installer le SDK.
  3. Sous "Project -> Properties -> Android", le projet est "Is library".
  4. Dans votre projet, ouvrez également "Projet -> Propriétés -> Android" et cliquez sur "Ajouter" dans la section de la bibliothèque. Sélectionnez le google-play-services_lib.

Au moins cela a fonctionné pour moi.

+0

mhm, je comprends ce que tu veux dire. Mais j'ai un problème: quand j'essaie de créer un projet à partir d'un code existant et de naviguer vers ce projet, le projet est montré, mais en lettres grises, donc je ne peux pas le vérifier ... tu sais pourquoi? – user1984921

+0

Je ne suis pas sûr de ce que vous voulez dire. Pouvez-vous fournir une image? Cependant, je ne suis pas un expert Eclipse et j'ai lutté avec ce problème pendant quelques heures ... – Dan

+0

Désolé je ne peux pas insérer une image, parce que je suis un nouvel utilisateur ici. Quand j'essaye d'importer le projet de libary dans mon espace de travail il me dit, qu'il est déjà là, mais je pense que ce n'est pas – user1984921

Questions connexes