Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
#1

google map v2 outOfMemory - Программирование Android

17.08.2013, 15:58. Просмотров 1315. Ответов 10
Метки нет (Все метки)

Подскажите пожалуйста, в чём может быть проблема. При перемещении карты google v2 в скором времени наступает outOfMemory. Ссылаясь на этот официальный google maps форум http://code.google.com/p/gmaps-api-i...detail?id=4766 я только смог выяснить что вроде это как BUG, но сути не понял. Что необходимо сделать чтобы избежать outOfMemory ???
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.08.2013, 15:58     google map v2 outOfMemory
Посмотрите здесь:

Google map - Программирование Android
Всем привет! Пишу плагин для юнити 3d для отображения карты google map. Одна загвоздка есть, отображается только серая сетка ...

Скриншот google map - Программирование Android
Дайте пожалуйста пример того, как сделать скриншот карты google (api v2) и установления его в imageView. На просторах интернета находил...

Вьюшки на Google Map v2 - Программирование Android
Привет! Необходимо к гугл мапе прикрутить панель, поиска места по названию, просветите плиз, как правильно добавить компоненты на...

Не отображается Google map - Программирование Android
Добрый день. Сразу скажу, перерыл весь форум, но это не помогло. Я начинаю только разбираться в Android Studio, поэтому сильно не пинайте....

Google Map на устройстве - Программирование Android
Здраствуйте Столкнулся с проблемой отображения гугл карт. Про компилировании кода с андроид студии в емулятор генемоушен карта роботает...

Не отображается Google map! - Программирование Android
Решил заняться разработкой приложений под android. Написав простое приложение по загрузке карт Google в fragment столкнулся с проблемой...

Рисование маршрута на Google Map - Программирование Android
Есть поле 2 поля Edit Text пользователь вводит туда адрес начальной и конечной точки. Точки на карте я отметить могу а как проложить...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
17.08.2013, 21:50     google map v2 outOfMemory #2
Может запрет на перерисовку активити при повороте?
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
17.08.2013, 22:45  [ТС]     google map v2 outOfMemory #3
Цитата Сообщение от Digetix Посмотреть сообщение
Может запрет на перерисовку активити при повороте?
в том то и дело поворота нет, только вертикальная разметка используется.
Wenceslaus
Android Developer
130 / 130 / 4
Регистрация: 05.07.2013
Сообщений: 205
18.08.2013, 13:07     google map v2 outOfMemory #4
Stylish2013, лог с ошибкой в студию. И код формирования карты тоже. А вообще java.lang.OutOfMemoryError может возникать из-за перенасыщения карты графикой. Например, чрезмерное количество маркеров, или их большой размер. Попробуйте для начала ограничить их несколькими десятками..
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
18.08.2013, 17:27  [ТС]     google map v2 outOfMemory #5
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
04-27 14:47:57.742: E/AndroidRuntime(4462): FATAL EXCEPTION: GLThread 262
04-27 14:47:57.742: E/AndroidRuntime(4462): java.lang.OutOfMemoryError: bitmap size exceeds VM budget
04-27 14:47:57.742: E/AndroidRuntime(4462): at android.graphics.Bitmap.nativeCreate(Native Method)
04-27 14:47:57.742: E/AndroidRuntime(4462): at android.graphics.Bitmap.createBitmap(Bitmap.java:477)
04-27 14:47:57.742: E/AndroidRuntime(4462): at maps.s.h.a(Unknown Source)
04-27 14:47:57.742: E/AndroidRuntime(4462): at maps.cr.a.a(Unknown Source)
04-27 14:47:57.742: E/AndroidRuntime(4462): at maps.cr.a.a(Unknown Source)
04-27 14:47:57.742: E/AndroidRuntime(4462): at maps.cr.a.b(Unknown Source)
04-27 14:47:57.742: E/AndroidRuntime(4462): at maps.l.m.a(Unknown Source)
04-27 14:47:57.742: E/AndroidRuntime(4462): at maps.l.at.a(Unknown Source)
04-27 14:47:57.742: E/AndroidRuntime(4462): at maps.y.ab.a(Unknown Source)
04-27 14:47:57.742: E/AndroidRuntime(4462): at maps.af.v.a(Unknown Source)
04-27 14:47:57.742: E/AndroidRuntime(4462): at maps.af.v.a(Unknown Source)
04-27 14:47:57.742: E/AndroidRuntime(4462): at maps.af.v.a(Unknown Source)
04-27 14:47:57.742: E/AndroidRuntime(4462): at maps.p.q.m(Unknown Source)
04-27 14:47:57.742: E/AndroidRuntime(4462): at maps.p.q.run(Unknown Source)
маркеров всего 5.

Цитата Сообщение от Wenceslaus Посмотреть сообщение
И код формирования карты тоже.
а что именно под это определение попадает?
Wenceslaus
Android Developer
130 / 130 / 4
Регистрация: 05.07.2013
Сообщений: 205
18.08.2013, 17:55     google map v2 outOfMemory #6
Stylish2013, всего 5? Очень интересно, и каковы их параметры (вес, разрешение)?
Под кодом формирования карты я имел ввиду все манипуляции с объектом GoogleMap и формированием/добавлением маркеров.
Вполне возможно, что смотреть придётся в сторону оптимизации вывода изображений.
И добавьте в Manifest
XML
1
2
3
<application
    ....
    android:largeHeap="true">
, если поддерживаете только с API 11.
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
18.08.2013, 18:29  [ТС]     google map v2 outOfMemory #7
Цитата Сообщение от Wenceslaus Посмотреть сообщение
если поддерживаете только с API 11.
поддержка идет с api 10

Цитата Сообщение от Wenceslaus Посмотреть сообщение
Под кодом формирования карты я имел ввиду все манипуляции с объектом GoogleMap и формированием/добавлением маркеров.
Java
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
 
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
 
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONException;
import org.json.JSONObject;
 
import android.app.PendingIntent;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.AsyncTask;
import android.support.v4.app.FragmentManager;
import android.widget.EditText;
import android.widget.LinearLayout;
 
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.android.gms.maps.CameraUpdate;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.GoogleMap.OnInfoWindowClickListener;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
 
public class FragmentMap extends Fragment implements OnInfoWindowClickListener,
        LocationListener {
 
    public ViewPager mViewPager;
    private GoogleMap myMap;
    private LocationManager locationManager;
    private String provider;
 
    LinearLayout layout;
 
    // подключаем базу
    DBHelperSqLite dbHelperSqLite;
    private static final String TABLE_POSITION = "positionDB";
    private static final String KEY_ID = "id";
    private static final String KEY_TITLE = "title";
    private static final String KEY_SHORT_DESC = "short_desc";
    private static final String KEY_LAT = "lat";
    private static final String KEY_LON = "lon";
    private static final String KEY_RANGE = "range";
 
    private static final String PROXIMITY_INTENT_ACTION = new String(
            "com.examplemy.app.action.PROXIMITY_ALERT");
 
    private IntentFilter mIntentFilter;
    private ArrayList<LatLonPair> mPositions;
    private static final long PROX_ALERT_EXPIRATION = -1;
    private ArrayList<String> name;
    private ArrayList<Float> range;
    private static final long MINIMUM_DISTANCECHANGE_FOR_UPDATE = 1; // in
                                                                        // Meters
    private static final long MINIMUM_TIME_BETWEEN_UPDATE = 800; // in
                                                                    // Milliseconds
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
 
        View myView = inflater.inflate(R.layout.fragment_map, container, false);
 
        mViewPager = ((MapFragmentActivity) getActivity()).getpager();
        layout = (LinearLayout) myView.findViewById(R.id.ll);
 
        try {
            // location
            FragmentManager myFragmentManager = getFragmentManager();
            SupportMapFragment mySupportMapFragment = (SupportMapFragment) myFragmentManager
                    .findFragmentById(R.id.map);
            myMap = mySupportMapFragment.getMap();
 
            if (checkPlayServices() == true) {
                System.out
                        .println("checkPlayServices() " + checkPlayServices());
                myMap.setMyLocationEnabled(true);
            } else {
                System.out.println("PlayServices Google не установлены");
            }
 
            LocationManager service = (LocationManager) getActivity()
                    .getSystemService(Context.LOCATION_SERVICE);
            boolean enabledGPS = service
                    .isProviderEnabled(LocationManager.GPS_PROVIDER);
 
            if (!enabledGPS) {
                Toast.makeText(getActivity(), "Нет сигнала GPS",
                        Toast.LENGTH_LONG).show();
            }
 
            locationManager = (LocationManager) getActivity().getSystemService(
                    Context.LOCATION_SERVICE);
 
            Criteria criteria = new Criteria();
            provider = locationManager.getBestProvider(criteria, false);
            Location location = locationManager.getLastKnownLocation(provider);
 
            // Initialize the location fields
            if (location != null) {
                onLocationChanged(location);
            } else {
                // do something
            }
 
            myMap.setOnInfoWindowClickListener(this);
 
            // Development Alert
            mIntentFilter = new IntentFilter(PROXIMITY_INTENT_ACTION);
 
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("на карте произошла ошибка");
        }
 
        return myView;
    }
 
    // проверка на PlayServices Google
    private boolean checkPlayServices() {
        int status = GooglePlayServicesUtil
                .isGooglePlayServicesAvailable(getActivity());
        if (status == ConnectionResult.SUCCESS) {
            return true;
        }
        return false;
    }
 
    // слушатель клика по подробнастям над маркером
    @Override
    public void onInfoWindowClick(Marker marker) {
 
        String title = marker.getTitle();
        System.out.println("title - " + title);
        Fragment2 fragment2 = (Fragment2) ((MapFragmentActivity) getActivity())
                .getFragment2();
        fragment2.getMyIndex(title);
 
        
        layout.setVisibility(View.GONE);
        mViewPager.setCurrentItem(1);
 
    }
 
    /* Request updates at startup */
    @Override
    public void onResume() {
        super.onResume();
 
        locationManager.requestLocationUpdates(provider,
                MINIMUM_TIME_BETWEEN_UPDATE, MINIMUM_DISTANCECHANGE_FOR_UPDATE,
                new MyLocationListener());
 
        try {
            getActivity().registerReceiver(new ProximityAlert(), mIntentFilter);
        } catch (Exception e) {
            e.printStackTrace();
        }
 
    }
 
    /* Remove the locationlistener updates when Activity is paused */
    @Override
    public void onPause() {
        super.onPause();
        locationManager.removeUpdates(this);
    }
 
    @Override
    public void onLocationChanged(Location location) {
        // TODO Auto-generated method stub
 
        double lat = location.getLatitude();
        double lng = location.getLongitude();
 
        LatLng coordinate = new LatLng(lat, lng);
 
        myMap.animateCamera(CameraUpdateFactory.newLatLng(coordinate));
        CameraUpdate center = CameraUpdateFactory
                .newLatLng(new LatLng(lat, lng));
        CameraUpdate zoom = CameraUpdateFactory.zoomTo(11);
        myMap.moveCamera(center);
        myMap.animateCamera(zoom);
    }
 
    @Override
    public void onProviderDisabled(String provider) {
 
    }
 
    @Override
    public void onProviderEnabled(String provider) {
 
    }
 
    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
        // TODO Auto-generated method stub
 
    }
 
    // метод который необходим для того чтобы выгружать из базы инфу и ставить
    // маркеры
    public void insertMarker(){
    try{
    
    dbHelperSqLite = new DBHelperSqLite(getActivity());
    
/
    SQLiteDatabase db = dbHelperSqLite.getReadableDatabase();
 
    //Development Alert
    mPositions = new ArrayList<LatLonPair>();
    name = new ArrayList<String>();
    range = new ArrayList<Float>();
    
    Cursor valuesCursor = db.query(TABLE_POSITION, new String[] { KEY_ID,
            KEY_TITLE, KEY_SHORT_DESC , KEY_LAT,
            KEY_LON, KEY_RANGE }, KEY_ID, null, null, null, null);
 
    valuesCursor.moveToFirst();
    if (!valuesCursor.isAfterLast()) {
        do {
            String nameTitle = valuesCursor.getString(1);
            double nameLat = valuesCursor.getDouble(3); //
            double nameLon = valuesCursor.getDouble(4);
            float rangeValue = valuesCursor.getFloat(5);
            
            //ставит маркеры
             final LatLng COORDINATES = new LatLng(nameLat, nameLon);
                myMap.addMarker(new MarkerOptions()
                                        .position(COORDINATES)
                                        .title(nameTitle)
//                                      .snippet(nameShort_descH)
                                        .icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_map)));
            
                //Development Alert
            mPositions.add(new LatLonPair(nameLat, nameLon));
            name.add(nameTitle);
            range.add(rangeValue);
 
        } while (valuesCursor.moveToNext());
    }
    valuesCursor.close();
    dbHelperSqLite.close();
    db.close();
    
    //Development Alert
       registerIntents(name, range);
       
    }catch (Exception e) {
        e.printStackTrace();
        System.out.println("попали в try catch");
    }
    
}
 
    // Development Alert
    private void registerIntents(ArrayList<String> name,
            ArrayList<Float> range) {
        for (int i = 0; i < mPositions.size(); i++) {
            LatLonPair latLon = mPositions.get(i);
 
            String valueName = name.get(i);
            float rangeRadius = range.get(i);
 
            setProximityAlert(latLon.getLatitude(), latLon.getLongitude(),
                    i + 1, i, valueName, rangeRadius);
        }
    }
 
    private void setProximityAlert(double lat, double lon, final long eventID,
            int requestCode, String valueName, float radius) {
 
        System.out.println("valueName " + valueName + " radius "
                + radius);
        long expiration = PROX_ALERT_EXPIRATION;
 
        LocationManager locManager = (LocationManager) getActivity()
                .getSystemService(Context.LOCATION_SERVICE);
 
        Intent intent = new Intent(PROXIMITY_INTENT_ACTION);
        intent.putExtra(ProximityAlert.EVENT_ID_INTENT_EXTRA, eventID);
        intent.putExtra(ProximityAlert.NAME_INTENT_EXTRA,
                valueName);
 
        PendingIntent pendingIntent = PendingIntent.getBroadcast(getActivity()
                .getApplicationContext(), requestCode, intent,
                PendingIntent.FLAG_CANCEL_CURRENT);
 
        locManager.addProximityAlert(lat, lon, radius, expiration,
                pendingIntent);
    }
 
    public class MyLocationListener implements LocationListener {
        public void onLocationChanged(Location location) {
 
        }
 
        public void onStatusChanged(String s, int i, Bundle b) {
        }
 
        public void onProviderDisabled(String s) {
        }
 
        public void onProviderEnabled(String s) {
        }
    }
 
}
Цитата Сообщение от Wenceslaus Посмотреть сообщение
всего 5? Очень интересно, и каковы их параметры (вес, разрешение)?
есть 3 маркера под разные разрешения:
hdpi - 6,30 кб 82x98 глубина цвета 32
xhdpi - 9,57 кб 125x148 глубина цвета 32
xxhdpi - 15,6 кб 189x224 глубина цвета 32
Wenceslaus
Android Developer
130 / 130 / 4
Регистрация: 05.07.2013
Сообщений: 205
18.08.2013, 19:13     google map v2 outOfMemory #8
Stylish2013, посмотрите как часто и при каких условиях вызывается метод insertMarker(). Не дублируются ли маркеры, и не сменяются ли они часто. В лучшем случае метод должен вызываться только при создании карты.
Далее, каждую секунду вызывать
Java
1
2
3
4
5
6
7
LatLng coordinate = new LatLng(lat, lng);
 
myMap.animateCamera(CameraUpdateFactory.newLatLng(coordinate));
CameraUpdate center = CameraUpdateFactory.newLatLng(new LatLng(lat, lng));
CameraUpdate zoom = CameraUpdateFactory.zoomTo(11);
myMap.moveCamera(center);
myMap.animateCamera(zoom);
тоже негативно сказывается на памяти. Уменьшите время обновления GPS координат и уберите лишнюю анимацию. Если не поможет, то больше ни чем помочь не смогу.
Относительно бага в первом посте - это утечка памяти из-за использования BitmapDescriptorFactory. Заменить его нельзя, а фикс, о котором там твердят, ещё не доступен для разработчиков.
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
18.08.2013, 19:37  [ТС]     google map v2 outOfMemory #9
А по поводу маркеров, а точнее их размера и разрешения, что вы можете сказать?

Добавлено через 6 минут
Цитата Сообщение от Wenceslaus Посмотреть сообщение
И добавьте в Manifest
Код XML
1
2
3
<application
* *....
* *android:largeHeap="true">
, если поддерживаете только с API 11.
и как быть если нужно использовать начиная с api 10 ?

Добавлено через 1 минуту
Цитата Сообщение от Wenceslaus Посмотреть сообщение
Далее, каждую секунду вызывать
Код Java(TM) 2 Platform Standard Edition 5.0

LatLng coordinate = new LatLng(lat, lng);
myMap.animateCamera(CameraUpdateFactory.newLatLng(coordinate));
CameraUpdate center = CameraUpdateFactory.newLatLng(new LatLng(lat, lng));
CameraUpdate zoom = CameraUpdateFactory.zoomTo(11);
myMap.moveCamera(center);
myMap.animateCamera(zoom);
тоже негативно сказывается на памяти
а где у меня в коде каждую секунду он вызывается?
Wenceslaus
Android Developer
130 / 130 / 4
Регистрация: 05.07.2013
Сообщений: 205
19.08.2013, 11:46     google map v2 outOfMemory #10
Stylish2013, о маркерах я уже сказал выше, смотрите в сторону оптимизации вывода изображений. Уменьшите качество/размер иконок. Но не думаю, что это решит проблему, ведь их размер и так не велик.

Теперь о android:largeHeap. Установка этого параметра позволяет системе выделять под приложение больше памяти, но он доступен только с API 11. Варианта два: либо откажитесь от поддержки API 10 (и потеряете 33% пользователей), либо не используйте его. Решать вам.

И пару слов о анимации камеры. Код расположен в функции onLocationChanged(), которую вызывает LocationManager. При его создании вы указали, что бы он обновлялся каждые MINIMUM_TIME_BETWEEN_UPDATE (0.8 сек). Ибо устанавливая слушателя событий для LocationManager с параметрами времени и дистанции, onLocationChanged() будет вызываться в тот момент, когда пройдёт установленное время (0.8 сек) или изменится дистанция на указанное расстояние (1 метр). Посему код вызывается даже чаще, чем раз в секунду.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.08.2013, 23:34     google map v2 outOfMemory
Еще ссылки по теме:

Не работают Google Map в стандартном приложении - Программирование Android
Здравствуйте! Создал в Android Studio обычное приложение с Blank Activity Google Map. Приложение запускается, но на экране просто белый...

Как включить поиск в google map? - Программирование Android
После добавления google map хочу добавить поиск сверху. Чтобы при вводе найти нужный город. В любых сайтах это есть даже на карте...

Подключение Google Map к приложению для Android - Программирование Android
Все доброго времени суток. Вопрос заюзанный, но как-то полного описания установки так и не нашел. Пересмотрел много информации, но...

Почему Google map долго грузит детали карты в определенных координатах? - Программирование Android
Добрый день! Использую в приложении Google map. Обнаружил странную вещь: если переместить позицию карты в разные координаты, то разное...

Ошибка OutOfMemory в Service - Программирование Android
Используется Retrofit и GsonConverterFactory Есть фрагнмент поиска, при открытии запускается сервис и периодически(8 секунд)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
20.08.2013, 23:34  [ТС]     google map v2 outOfMemory #11
Цитата Сообщение от Wenceslaus Посмотреть сообщение
о маркерах я уже сказал выше, смотрите в сторону оптимизации вывода изображений. Уменьшите качество/размер иконок. Но не думаю, что это решит проблему, ведь их размер и так не велик.
я вообще маркеры убирал, но ситуации не поменяло это вообще. Всё осталось как было.

Цитата Сообщение от Wenceslaus Посмотреть сообщение
И пару слов о анимации камеры. Код расположен в функции onLocationChanged(), которую вызывает LocationManager. При его создании вы указали, что бы он обновлялся каждые MINIMUM_TIME_BETWEEN_UPDATE (0.8 сек). Ибо устанавливая слушателя событий для LocationManager с параметрами времени и дистанции, onLocationChanged() будет вызываться в тот момент, когда пройдёт установленное время (0.8 сек) или изменится дистанция на указанное расстояние (1 метр). Посему код вызывается даже чаще, чем раз в секунду.
Увеличил я до 3 минут и до 100 метров и опять ситуации это не поменяло. Ведь когда карту не двигаешь размер хипа не заполняется. А вот когда начинаешь карту приближать отдалять, центрировать по своему месту расположения или просто двигать в право влемво вот только тогда память начинает уменьшаться и в итоге крашится из-за нехватки.
Yandex
Объявления
20.08.2013, 23:34     google map v2 outOfMemory
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru