Xamarin.Forms Android应用程序引发OutofMemory错误(XAML)

时间:2017-05-27 00:37:27

标签: c# xaml xamarin.android xamarin.forms out-of-memory

我对Xamarin.Forms(2周)很新,所以我遇到了很多错误,警告等... 现在我正在尝试运行只有一个页面的应用程序,但有5个图像被用作按钮的背景,就是这样。

但每次我在我的手机或模拟器上运行Android应用程序(Windows应用程序运行正常),我得到“OutofMemory错误”...我迷失在这里,我甚至没有这么多代码它...

如果有人能告诉我我做错了什么或给我一个如何解决它的线索,我会非常感激!!

MainPage.xaml中

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         xmlns:local="clr-namespace:PAEC"
         x:Class="PAEC.MainPage">

     <Grid >
         <Image Source="background.png" Aspect="AspectFill"/>
         <StackLayout VerticalOptions="Center" HorizontalOptions="Fill">

             <Button
                Image="Circle_Green.png"
                BackgroundColor="Transparent"
                />
             <Button
                Image="Circle_Red.png"
                BackgroundColor="Transparent"
                />
             <Button
                Image="Circle_Blue.png"
                BackgroundColor="Transparent"
                />
             <Button
                Image="Circle_Grey.png"
                BackgroundColor="Transparent"
                />
             <Button
                Image="Circle_Orange.png"
                BackgroundColor="Transparent"
                />

         </StackLayout>
    </Grid>
</ContentPage>

MainPage.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;

namespace PAEC
{
    [XamlCompilation(XamlCompilationOptions.Compile)]
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
             InitializeComponent();
        }
    }
}

Output

1 个答案:

答案 0 :(得分:1)

Android在显示时将所有图像转换为原始位图,因此它使用大量内存来执行此操作。 Windows和iOS不这样做,这就是为什么它可以在这些平台上正常工作。

为了抵消这种情况,您需要确保图像的大小正确。如果您的图像是1000x1000,那么它将为整个图像大小创建一个原始位图,即使它只在屏幕上显示为48x48。

另一件事是进入Android项目的属性,并将Java Max Heap Size设置为1G

enter image description here