Problème avec crash avec ItemizedOverlay

Je tente depuis des heures de comprendre pourquoi je ne peux pas utiliser une superposition de carte détaillée avant de l'ajouter aux ovelays de la carte:

GeoPoint point; OverlayItem overlayitem = new OverlayItem(point, "",""); MarkerOverlay.addOverlay(overlayitem);

  • Android AdapterView?
  • Où ansroid.os.SystemProperties stocke-t-il sa clé / valeurs?
  • Android requiert le niveau de conformité du compilateur 5.0 ou 6.0. Trouvé '1.7' à la place. Utilisez les outils Android> Fix Project Properties
  • DialogFragment en plein écran dans Android
  • OnActivityResult se déclenche lorsque l'activité commence, et non quand il est terminé
  • Appeler Gradle buildConfig à plusieurs reprises
  • Si j'essaie de le faire sans MarkerOverlay.addOverlay(overlayitem); Commande puis quand j'essaie d'ajouter un nouveau OverLay comme ça:

     public boolean onTap(GeoPoint point, MapView mapView) { if (mOverlays.size() > 0) mOverlays.remove(0); OverlayItem overlayitem = new OverlayItem(point, "", ""); mOverlays.add(overlay); populate(); return true; } 

    À l'intérieur de ma classe ItemizedOverlay, je viens d'obtenir une exception de référence nulle (je n'ai aucune idée de quand ou pourquoi – Il dit qu'il n'y a pas de code source disponible lors du débogage)

    Des idées?

    EDIT: C'est ce que je peux trouver dans le logcat:

     09-20 22:36:22.164: WARN/dalvikvm(311): threadid=3: thread exiting with uncaught exception (group=0x4001b188) 

    Et c'est ce que je crois être l'exception infâme:

      09-20 22:36:22.293: ERROR/AndroidRuntime(311): java.lang.NullPointerException 09-20 22:36:22.293: ERROR/AndroidRuntime(311): at com.google.android.maps.ItemizedOverlay.getItemsAtLocation(ItemizedOverlay.java:617) 09-20 22:36:22.293: ERROR/AndroidRuntime(311): at com.google.android.maps.ItemizedOverlay.getItemAtLocation(ItemizedOverlay.java:586) 09-20 22:36:22.293: ERROR/AndroidRuntime(311): at com.google.android.maps.ItemizedOverlay.handleMotionEvent(ItemizedOverlay.java:498) 09-20 22:36:22.293: ERROR/AndroidRuntime(311): at com.google.android.maps.ItemizedOverlay.onTouchEvent(ItemizedOverlay.java:572) 09-20 22:36:22.293: ERROR/AndroidRuntime(311): at com.google.android.maps.OverlayBundle.onTouchEvent(OverlayBundle.java:63) 09-20 22:36:22.293: ERROR/AndroidRuntime(311): at com.google.android.maps.MapView.onTouchEvent(MapView.java:625) 09-20 22:36:22.293: ERROR/AndroidRuntime(311): at android.view.View.dispatchTouchEvent(View.java:3709) 09-20 22:36:22.293: ERROR/AndroidRuntime(311): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:852) 09-20 22:36:22.293: ERROR/AndroidRuntime(311): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:822) 09-20 22:36:22.293: ERROR/AndroidRuntime(311): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:822) 09-20 22:36:22.293: ERROR/AndroidRuntime(311): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:822) 09-20 22:36:22.293: ERROR/AndroidRuntime(311): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659) 09-20 22:36:22.293: ERROR/AndroidRuntime(311): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107) 09-20 22:36:22.293: ERROR/AndroidRuntime(311): at android.app.Activity.dispatchTouchEvent(Activity.java:2061) 09-20 22:36:22.293: ERROR/AndroidRuntime(311): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643) 09-20 22:36:22.293: ERROR/AndroidRuntime(311): at android.view.ViewRoot.handleMessage(ViewRoot.java:1691) 09-20 22:36:22.293: ERROR/AndroidRuntime(311): at android.os.Handler.dispatchMessage(Handler.java:99) 09-20 22:36:22.293: ERROR/AndroidRuntime(311): at android.os.Looper.loop(Looper.java:123) 09-20 22:36:22.293: ERROR/AndroidRuntime(311): at android.app.ActivityThread.main(ActivityThread.java:4363) 09-20 22:36:22.293: ERROR/AndroidRuntime(311): at java.lang.reflect.Method.invokeNative(Native Method) 09-20 22:36:22.293: ERROR/AndroidRuntime(311): at java.lang.reflect.Method.invoke(Method.java:521) 09-20 22:36:22.293: ERROR/AndroidRuntime(311): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 09-20 22:36:22.293: ERROR/AndroidRuntime(311): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 09-20 22:36:22.293: ERROR/AndroidRuntime(311): at dalvik.system.NativeStart.main(Native Method) 09-20 22:36:22.394: ERROR/dalvikvm(311): Unable to open stack trace file '/data/anr/traces.txt': Permission denied 

    3 Solutions collect form web for “Problème avec crash avec ItemizedOverlay”

    J'ai récemment rencontré ce problème. Le problème est décrit dans ce rapport de bogue .

    Pour le réparer, vous devez appeler populate () dans votre ItemizedOverlay avant que les données ne soient remplies. Je l'ai ajouté au constructeur:

     private class MyItemizedOverlay extends ItemizedOverlay<OverlayItem> { private Context context; private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>(); LocationItemizedOverlay(Drawable defaultMarker, Context context) { super(boundCenterBottom(defaultMarker)); this.context = context; populate(); // Add this } } 

    La superposition détaillée nécessite les 2èmes paramètres car elle les utilise pour les événements de clic. Lorsque vous cliquez sur l'une des superpositions détachées, il possède un titre et une description qui lui sont associées, qui sont les 2ème et 3ème paramètres de votre élément de superposition

    Si vous effectuez des modifications importantes sur votre ItemizedOverlay, vous devez toujours le faire

    1. Delete_usrer_Marker_from_Overlays (myitemizedoverlay);
    2. Create_user_Marker (myitemizedoverlay);
    3. MapView.getOverlays (). Add (myitemizedoverlay);

    avec

     private void delete_usrer_Marker_from_Overlays(MyOverlays myio){ List<Overlay> mapOverlays = mapView.getOverlays(); if (mapOverlays != null) { for (int i = 0;i< mapOverlays.size();i++) { Overlay x = mapOverlays.get(i); if (x.hashCode() == myio.hashCode()) { mapOverlays.remove(x); } } } } 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.