2013-01-07 21 views
7

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")); 
    } 
+0

Đ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

+1

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

+1

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

Trả lời

0

bao nhiêu kích thước của hình ảnh đánh dấu? cố gắng đổi kích thước hình ảnh đánh dấu nhỏ hơn

+1

là điểm đánh dấu mặc định, tôi không thay đổi – martenson