1 pièce(s) jointe(s)
map fonctionne sur smartphone mais crash sur emulator
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:
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:
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:
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 :
Pièce jointe 179774