Получение исключения OutOfMemoryException в Xamarin


java.ленг.OutOfMemoryError. Рассмотрите возможность увеличения стоимости $(JavaMaximumHeapSize). Java закончилась память во время выполнения - Ява.exe'

Я получаю исключение из памяти в моем проекте visualstudio Xamarin пожалуйста, помогите мне, как я могу решить эту проблему.

7 62

7 ответов:

Я бы увеличил размер кучи сборки.

щелкните правой кнопкой мыши ваш проект Android > свойства> Android Options>Advanced>Максимальный Размер Кучи Java.

enter image description here

Если вы хотите увеличить размер кучи вашего приложения (а не процесс сборки), вы можете установить это в своем AndroidManifest.XML-код:

<application android:largeHeap="true"></application>

выбранный ответ приведет меня в правильном направлении, но для Visual Studio 2017 экран выглядит так:

VS 2017 Updated Screens

VS 2017 Updated Screens

для visual studio 2015 щелкните правой кнопкой мыши проект -- > свойства -- > параметры Android -- > расширенный и размер кучи там.

начиная с Xamarin studio версии 6.3 и visual studio 7.0.1 возможность увеличения размера кучи можно найти здесь

щелкните правой кнопкой мыши на проекте android, затем выберите опции и построить/ Android Build, потом Advanced tab и set 1G (или что-то) в размер кучи Java

enter image description here

увеличение размера кучи java max работает для меня

enter image description here

когда у вас закончится размер кучи 1G, начните оптимизировать ресурсы.

сначала проверьте, не дублируете ли вы экземпляры изображений, сохраняя одно и то же изображение в памяти несколько раз. Для этого используйте библиотеку ffimageloading (https://github.com/luberda-molinet/FFImageLoading) получить его на nuget быстро и легко.

затем оптимизируйте изображения, которые вы используете. Для больших изображений, кроме значков, попробуйте преобразовать все в jpeg, избегая png с прозрачностью, которая когда-то была сохранена я за постоянные ОМС.

затем попробуйте использовать миниатюры вместо изображений, когда у вас могут быть большие загруженные изображения на удаленном устройстве. На вашем сервере предварительно создайте миниатюры для разных размеров, мини, малых, средних , нормальных, больших, xlarge и т. д., и загрузите только изображения нужного вам размера. Это экономит много памяти и скорости.