0

Je n'arrive pas à essayer d'utiliser GoogleMapApi V2 avec le même code que celui utilisé dans d'autres applications. Tout ce que je veux, c'est faire StartActivity (MapActivityFragment); sans erreursProblème lors de l'utilisation de google map apiV2 en plein écran dans SherlockFragmentActivity avec actionBarSherlock

Je les autorisations

<uses-feature 
    android:glEsVersion="0x00020000" 
    android:required="true" /> 

<permission 
    android:name="com.egdigital.appetablissement.permission.MAPS_RECEIVE" 
    android:protectionLevel="signature" /> 
<uses-permission android:name="com.egdigital.appetablissemen" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.VIBRATE" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<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_FINE_LOCATION" /> 

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

<activity 
    android:name="com.egdigital.appetablissement.ActivityGoogleMap" 
    android:configChanges="orientation" 
    android:label="@string/app_name" > 
</activity> 

Le XML qui contient le fragment de support de carte: activity_maps

<?xml version="1.0" encoding="utf-8"?> 
<fragment xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/map" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    class="com.google.android.gms.maps.SupportMapFragment" /> 

Et cette classe pour gérer la carte

public class ActivityGoogleMap extends SherlockFragmentActivity { 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_maps); 
    } 
} 

J'ai inclus ActionBarSherlock et googlePlayServices-lib bibliothèques

également inclus android-support-v4.jar comme pot extérieur et ajouté à des dépendances

Quand je fais StartActivity (MapActivityFragment) je reçois cette grande erreur sale:

FATAL EXCEPTION: main 
java.lang.RuntimeException: Unable to start activity  ComponentInfo{com.egdigital.appetablissement/com.egdigital.appetablissement.ActivityGoogleMap}: android.view.InflateException: Binary XML file line #2: Error inflating class fragment 
Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class fragment 
Caused by: android.support.v4.app.Fragment$InstantiationException: Unable to instantiate fragment com.google.android.gms.maps.SupportMapFragment: make sure class name exists, is public, and has an empty constructor that is public 
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.maps.SupportMapFragment" on path: /data/app/com.egdigital.appetablissement-1.apk 
+2

Qu'est-ce que 'egdigital.appetablissement.ihm.TransparentSupportMapFragment'? – rciovati

+0

c'est une classe qui étend supportMapFragment. Je l'ai utilisé pour tester depuis que je n'ai pas obtenu de résultats positifs. J'ai la même trace avec com.google.android.gms.maps.SupportMapFragment –

+0

trace mis à jour avec le bon journal –

Répondre

1

On dirait qu'il ya une mauvaise mise en forme entourant le <application> et <meta-data> éléments dans votre AndroidManifest.xml.

Ainsi, les éléments suivants:

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

<activity 
    android:name="com.egdigital.appetablissement.ActivityGoogleMap" 
    android:configChanges="orientation" 
    android:label="@string/app_name" > 
</activity> 

... devrait être remplacé:

<application>   
    <activity 
     android:name="com.egdigital.appetablissement.ActivityGoogleMap" 
     android:configChanges="orientation" 
     android:label="@string/app_name" > 
    </activity> 
    <meta-data 
     android:name="com.google.android.maps.v2.API_KEY" 
     android:value="theApiKey"> 
</application> 

Maps API Android v2 docs: https://developers.google.com/maps/documentation/android/start#adding_the_api_key_to_your_application

... disons:

Dans AndroidManifest.xml, ajoutez l'élément [meta-data] en tant qu'enfant de l'élément, en l'insérant juste avant la balise de fermeture </application>.