Ich versuche ein MapView (derzeit ohne Overlays) in einigen verschachtelten Elementen zu erstellen.
Es ist im Grunde so etwas wie ScrollView -> RelativeLayout -> RelativeLayout -> MapView
Scheint gut für mich. Es gibt nichts mehr, was ich damit beim Start mache, aber es verursacht immer das Folgende:
%Vor%Hast du eine Idee, warum das so ist und was ich tun kann, um es los zu werden? Ich kann es nicht aus dieser Sicht herausnehmen, da es der Ort ist, an dem ich es brauche.
Danke!
Ich habe etwas ganz einfaches herausgefunden.
Platzieren Sie das MapView einfach in ein FrameLayout. Lassen Sie FramgeLayout wrap_content | sein wrap_content und alles ist in Ordnung:)
Dieser Punkt schlägt fehl:
%Vor%Ich bekomme den folgenden Stacktrace:
%Vor%Hier ist die Lösung:
%Vor%Grüße, Marco
Ich hatte dieses Problem auch, es tritt auf, wenn Sie versuchen, die genauen Abmessungen eines Mapview anzugeben. Legen Sie eine der Dimensionen auf "fill_parent" oder "wrap_content" fest und lassen Sie die andere Dimension wie gewünscht aussehen. Das sollte den Trick machen.
Sehen Sie sich den folgenden Thread an:
Problem 2181: Speicherverlust im System bei Verwendung von MapView
Scheint so, als wäre dies etwas in MapActivity intern. Der Thread ist nun seit über zwei Jahren am Leben und wurde nicht als behoben gemeldet ...
Edit: habe die dort beschriebene Lösung ausprobiert und mich zu einer ähnlichen Lösung geführt:
%Vor% steemcb ist korrekt, aber leider gibt es auch einen Fehler in MapView
Das bewirkt, dass dies auch dann geschieht, wenn Ihr Layout gut ist. Ich habe genau die gleiche Stack-Ablaufverfolgung wie Ihre. Es ist eine fragile Komponente und kleine Änderungen am Layout-Typ führen dazu, dass es unerwartet bricht, besonders wenn es in eine ScrollLayout
eingebunden ist.
Es wurde noch niemand von dem Android-Projekt angesprochen.
Dies wird verursacht, indem die MapView in eine Scrollansicht platziert wird. Siehe android MapView verursacht immer einen OutOfMemoryError in verschachtelten Elementen für weitere Informationen.
Tatsächlich wird es durch Scrollview verursacht, einen Puffer zu verursachen, um die Ansicht an jeder möglichen Position der Scrollbar zu enthalten, um schnelles und glattes Scrollen zu ermöglichen. Da eine MapView ziemlich groß ist, wenn die Kacheln während der Messphase geladen werden, kann der resultierende von ScrollView erstellte Puffer sehr groß sein (etwa 128 M). Wenn Sie Ihren Emulator nicht auf mehr als 256 MByte RAM- und Heap-Speicher setzen, schlägt der Fehler mit einem Speichermangel fehl. Sie könnten Ihren Emulator auf 512 MB RAM und Heap-Speicher setzen, aber Ihre App würde auf jedem Gerät abstürzen, das weniger als 512 MB RAM oder nicht genügend Heap-Speicher hat. Am besten entfernen Sie die MapView aus der ScrollView.
Tags und Links android out-of-memory android-mapview