Недостаточно памяти при активации пользовательского интерфейса игрового объекта на устройстве (Android) - PullRequest
0 голосов
/ 22 апреля 2020

Мы разрабатываем мобильную игру с использованием Unity 2019.2.17f1. Существует ошибка, которая возникает только при тестировании игры на физическом устройстве Android, но не на всех устройствах. Иногда при активации определенных игровых объектов пользовательского интерфейса игра просто сильно вылетает. После проверки вывода logcat мы получаем следующее:

    Trying to allocate: 8388609B with 16 alignment. MemoryLabel: Texture
    Allocation happened at: Line:78 in 
    Memory overview

    [ ALLOC_TEMP_THREAD ] used: 35494B | peak: 0B | reserved: 2850816B 
    [ ALLOC_TEMP_JOB_1_FRAME ] used: 0B | peak: 0B | reserved: 11534336B 
    [ ALLOC_TEMP_JOB_2_FRAMES ] used: 0B | peak: 0B | reserved: 1048576B 
    [ ALLOC_TEMP_JOB_4_FRAMES ] used: 0B | peak: 0B | reserved: 2097152B 
    [ ALLOC_TEMP_JOB_ASYNC ] used: 6019860B | peak: 0B | reserved: 14680064B 
    [ ALLOC_DEFAULT ] used: 119089062B | peak: 126982715B | reserved: 121770988B 
    [ ALLOC_GAMEOBJECT ] used: 1456307B | peak: 1456307B | reserved: 1582524B 
    [ ALLOC_GFX ] used: 657024804B | peak: 657024804B | reserved: 657035387B 

     #0 0xc0ad1055 (libunity.so) ? 0x0
     #1 0xc09d027b (libunity.so) ? 0x0
     #2 0xc05923c9 (libunity.so) ? 0x0
     #3 0xc05909f9 (libunity.so) ? 0x0
     #4 0xc0590d01 (libunity.so) ? 0x0
     #5 0xc0590cad (libunity.so) ? 0x0
     #6 0xc06444c5 (libunity.so) ? 0x0
     #7 0xc04ec069 (libunity.so

Я проверил текстуры в игре, и, похоже, с ними проблем нет. Я попытался установить их все в размере 512 (вместе с Атласом), но проблема сохраняется. Ошибка относительно тихая в логе, Unity даже ничего не выводит. Это происходит только с тремя или четырьмя игровыми объектами. Для интерфейса мы используем стандартный Unity RectTransforms на холсте Screen Space Overlay. Мы попробовали новую версию Unity (2019.3), но она тоже не помогла.

...