Bonjour,
j'essaye de faire fonctionner google maps sur android en utilisant SupportFragmentManager. cela fonctionne bien sur mon smartphone (4.3), mais quand je l'execute sur un emulateur (android sdk, avd) targets comme google api's (API 17,18,22) elle crash et on me sort ces exceptions :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
06-04 23:22:26.662: W/GooglePlayServicesUtil(2844): Google Play services 
out of date.  Requires 7571000 but found 6774470
06-04 23:22:26.676: D/AndroidRuntime(2844): Shutting down VM
06-04 23:22:26.676: E/AndroidRuntime(2844): FATAL EXCEPTION: main
06-04 23:22:26.676: E/AndroidRuntime(2844): Process: com.example.radaroc,     PID: 2844
06-04 23:22:26.676: E/AndroidRuntime(2844): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.radaroc/com.example.radaroc.SupportMapActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.maps.GoogleMap.setOnMapClickListener(com.google.android.gms.maps.GoogleMap$OnMapClickListener)' on a null object reference
06-04 23:22:26.676: E/AndroidRuntime(2844):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
06-04 23:22:26.676: E/AndroidRuntime(2844):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)
06-04 23:22:26.676: E/AndroidRuntime(2844):     at android.app.ActivityThread.access$800(ActivityThread.java:151)
06-04 23:22:26.676: E/AndroidRuntime(2844):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
06-04 23:22:26.676: E/AndroidRuntime(2844):     at android.os.Handler.dispatchMessage(Handler.java:102)
06-04 23:22:26.676: E/AndroidRuntime(2844):     at android.os.Looper.loop(Looper.java:135)
06-04 23:22:26.676: E/AndroidRuntime(2844):     at android.app.ActivityThread.main(ActivityThread.java:5257)
06-04 23:22:26.676: E/AndroidRuntime(2844):     at java.lang.reflect.Method.invoke(Native Method)
06-04 23:22:26.676: E/AndroidRuntime(2844):     at java.lang.reflect.Method.invoke(Method.java:372)
06-04 23:22:26.676: E/AndroidRuntime(2844):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
06-04 23:22:26.676: E/AndroidRuntime(2844):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
06-04 23:22:26.676: E/AndroidRuntime(2844): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.maps.GoogleMap.setOnMapClickListener(com.google.android.gms.maps.GoogleMap$OnMapClickListener)' on a null object reference
06-04 23:22:26.676: E/AndroidRuntime(2844):     at com.example.radaroc.SupportMapActivity.onCreate(SupportMapActivity.java:66)
06-04 23:22:26.676: E/AndroidRuntime(2844):     at android.app.Activity.performCreate(Activity.java:5990)
06-04 23:22:26.676: E/AndroidRuntime(2844):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
06-04 23:22:26.676: E/AndroidRuntime(2844):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
06-04 23:22:26.676: E/AndroidRuntime(2844):     ... 10 more
voila ma méthode onCreate :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_support_map);
 
    int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getBaseContext());
 
    // Showing status
    if(status!=ConnectionResult.SUCCESS){ // Google Play Services are not available
 
        int requestCode = 10;
        Dialog dialog = GooglePlayServicesUtil.getErrorDialog(status, this, requestCode);
        dialog.show();
 
    }else { // Google Play Services are available           
        FragmentManager myFM = getSupportFragmentManager();
 
        final SupportMapFragment fm = (SupportMapFragment) myFM
                        .findFragmentById(R.id.map);
 
 
        //SupportMapFragment fm = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
 
        googleMap = fm.getMap();// fm.getMapAsync(this);
        googleMap.setMyLocationEnabled(true);           
        getSupportLoaderManager().initLoader(0, null, this);            
    }        
}
et voila mon layout xml

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
<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="${relativePackage}.${activityClass}" >
 
<fragment
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    class="com.google.android.gms.maps.SupportMapFragment" />
 
</RelativeLayout>
voila mon avd manager :
Nom : Capture.PNG
Affichages : 129
Taille : 20,3 Ko