Tôi đang cố gắng triển khai bản đồ bằng Android Maps API v2 với Thư viện hỗ trợ Android, thử nghiệm trên Droid2 với Android 2.2 Mọi thứ hoạt động tốt nhưng chỉ trong một khoảng thời gian ngắn. Khi tôi thêm 10 điểm đánh dấu và cố gắng di chuyển bản đồ xung quanh hoặc phóng to/thu nhỏ, các lỗi sau được ném mỗi giây dẫn đến ngoại lệ đáng sợ và lỗi sau. Tôi không làm gì trong nền. Có nghĩa đen chỉ là bản đồ và 10 điểm đánh dấu.API cơ bản của Android v2 MapActivity outOfMemory với 10 điểm đánh dấu
Cảm ơn bạn về mọi mẹo.
Martin
Lỗi:
01-07 03:03:23.221: DEBUG/dalvikvm(12914): GC_FOR_MALLOC freed 38714 objects/1797752 bytes in 74ms
01-07 03:03:23.378: ERROR/dalvikvm-heap(12914): 1048576-byte external allocation too large for this process.
01-07 03:03:23.378: ERROR/GraphicsJNI(12914): VM won't let us allocate 1048576 bytes
01-07 03:03:23.378: WARN/System.err(12914): OutOfMemory
01-07 03:03:23.432: DEBUG/dalvikvm(12914): GC_EXPLICIT freed 8793 objects/601896 bytes in 58ms
01-07 03:03:23.862: ERROR/dalvikvm-heap(12914): 1048576-byte external allocation too large for this process.
01-07 03:03:23.862: ERROR/GraphicsJNI(12914): VM won't let us allocate 1048576 bytes
01-07 03:03:23.870: WARN/System.err(12914): OutOfMemory
Ngoại lệ:
01-07 02:45:12.432: ERROR/dalvikvm-heap(12315): 1048576-byte external allocation too large for this process.
01-07 02:45:12.432: ERROR/GraphicsJNI(12315): VM won't let us allocate 1048576 bytes
01-07 02:45:12.464: WARN/dalvikvm(12315): threadid=17: thread exiting with uncaught exception (group=0x400208b0)
01-07 02:45:12.479: ERROR/AndroidRuntime(12315): FATAL EXCEPTION: GLThread 18
java.lang.OutOfMemoryError: bitmap size exceeds VM budget
at android.graphics.Bitmap.nativeCreate(Native Method)
at android.graphics.Bitmap.createBitmap(Bitmap.java:498)
at maps.r.h.a(Unknown Source)
at maps.cp.a.a(Unknown Source)
at maps.cp.a.a(Unknown Source)
at maps.cp.a.b(Unknown Source)
at maps.m.n.a(Unknown Source)
at maps.m.at.a(Unknown Source)
at maps.a.bq.a(Unknown Source)
at maps.a.w.a(Unknown Source)
at maps.a.w.a(Unknown Source)
at maps.a.w.a(Unknown Source)
at maps.a.ba.m(Unknown Source)
at maps.a.ba.run(Unknown Source)
Layout:
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
class="com.google.android.gms.maps.SupportMapFragment"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
map:cameraTargetLat="49.85"
map:cameraTargetLng="15.42"
map:mapType="normal"
map:uiCompass="true"
map:uiRotateGestures="true"
map:uiScrollGestures="true"
map:uiTiltGestures="true"
map:uiZoomControls="false"
map:uiZoomGestures="true"
/>
Markers:
for (int i = 0; i < 9; i++) {
mMap.addMarker(new MarkerOptions()
.position(new LatLng(49d, 16d))
.draggable(true)
.title("BUUUUU")
.snippet("TEST"));
}
Điều này có thể do bạn chỉ thêm 10 điểm đánh dấu ở một vị trí duy nhất. Chỉ cần cố gắng thêm điểm đánh dấu trên các vị trí khác nhau. – GrIsHu
thats chỉ là một testcase, cư xử giống nhau khi đánh dấu ở những nơi khác nhau (có thể là một sai lầm google tầm thường nếu didnt) – martenson
Tôi đang chạy cùng một vấn đề trên thiết bị đó là tốt. Cấp cho tôi có thể rút ra 50 điểm đánh dấu, nhưng sau khi 10 bản đồ của nó chết. Tôi đã xem đống và nó không bao giờ người dùng tất cả các đống. Tôi vẫn còn 5mb nhưng nó đã chết khi nó yêu cầu số tiền tương tự như ứng dụng của bạn. Tôi có đọc 1048576-byte sai không? :( – Steven