Cocos2D android java.lang.OutOfMemoryError: размер растрового изображения превышает бюджет виртуальной машины

у меня есть 10 изображений размером 960x640 ~ 34 КБ, и я пытаюсь использовать их все в Cocos2D. Я запускаю игру на вкладке Samsung Galaxy Tab 10.1, и она работает нормально, но когда я пытаюсь использовать ее на Motorola Droid X, она выдает эту ошибку нехватки памяти. Я огляделся, но не смог найти ничего полезного. Я использую последнюю версию Cocos2D из SVN.

Эта небольшая игра запускается из более крупного приложения для Android, но 400 КБ изображений не должны разрушать память, верно?

я думал, что бюджет виртуальной машины был достаточно большим, чтобы легко использовать их, или образы становятся значительно больше, когда они находятся в памяти?

ОБНОВЛЕНИЕ: я пытался предварительно загрузить все, но проблема остается при первой загрузке игры. действительно ли Cocos2D/Android не поддерживает несколько изображений с таким количеством пикселей?


person Intrivix    schedule 31.05.2012    source источник


Ответы (1)


эй, я также сталкивался с этой проблемой много раз, на самом деле эта ошибка возникает, когда ваши изображения слишком велики .... чтобы уменьшить это, вы должны закончить свои изображения, я имею в виду, что вы должны сделать свою галерею изображений или все, что вы когда-либо использовали, вы должны очистить их, я попробовал это, и это сработало для меня, потому что иногда, когда вы запускаете свое приложение с одним и тем же 4-5 раз, вы также сталкиваетесь с форс-близостью......

person Jay Thakkar    schedule 01.06.2012
comment
Да, я думал, что CCTextureCache может позаботиться о таких вещах? как я вижу, написано, что он не перезагружает текстуры, а поддерживает их кешированную версию. я пытаюсь использовать эти кешированные версии несколько раз, должен ли я просто предварительно загрузить все текстуры, а затем настроить спрайты для использования этой текстуры? это решит проблему? - person Intrivix; 01.06.2012
comment
ну, у меня есть временное исправление, позволяющее сделать изображения половинными и увеличить их масштаб, но это выглядит не очень хорошо, поэтому я бы предпочел иметь реальное решение =/ - person Intrivix; 01.06.2012
comment
ну, чтобы соответствовать требованию иметь немного больше анимации, я попытался добавить еще 7 изображений половинного размера, но теперь ошибка сохраняется ... есть идеи, почему Cocos2D имеет такое ужасное ограничение на объем памяти, которую вы можете использовать? - person Intrivix; 02.06.2012
comment
на самом деле то, что я предлагаю, вам нужно использовать изображения размера растрового изображения или попытаться использовать миниатюрное изображение, это то, что я сделал ....... вам нужно использовать изображения немного меньшего размера, чтобы вы не могли получить эту ошибку - person Jay Thakkar; 02.06.2012
comment
Спасибо, я избежал проблемы, используя эти меньшие изображения, но это не идеальное решение... Предпочтительно, чтобы android/opengl/cocos2d поддерживал эти большие изображения... Сейчас я просто разберусь с этим... - person Intrivix; 05.06.2012
comment
ладно... это мило .. добро пожаловать ..... в любое время, если вы хотите, вы можете дать мне балл за это :), я имею в виду, что вы можете дать мне голос за это :P - person Jay Thakkar; 06.06.2012