listview - 缓存图像 (ffimageloading) 在 android 上出现 OUT OF MEMORY 错误 - xamarin 表单

标签 listview exception xamarin xamarin.forms xamarin.android

我在 ffimageloading:CachedImage 库中有一个包含一些图像的 ListView ....
但是...当我测试时,我会反复执行:我打开 ListView 并在确定的时间按下操作栏上的后退按钮,当我按下后退按钮时,我有一个异常(exception):

03-02 09:31:13.511 I/art ( 2430): Starting a blocking GC Explicit 03-02 09:31:13.522 I/art ( 2430): Clamp target GC heap from 108MB to 96MB 03-02 09:31:13.522 I/art ( 2430): Explicit concurrent mark sweep GC freed 10820(745KB) AllocSpace objects, 90(1956KB) LOS objects, 3% free, 92MB/96MB, paused 136us total 9.552ms 03-02 09:31:13.535 D/Mono ( 2430): GC_OLD_BRIDGE num-objects 997 num_hash_entries 50753 sccs size 25365 init 0.00ms df1 37.29ms sort 7.73ms dfs2 26.26ms setup-cb 1.58ms free-data 17.62ms links 67211/67211/24685/2 dfs passes 118961/92576 03-02 09:31:13.535 D/Mono ( 2430): GC_BRIDGE: Complete, was running for 79.60ms 03-02 09:31:13.535 D/Mono ( 2430): GC_MAJOR_SWEEP: major size: 9136K in use: 8634K 03-02 09:31:13.535 D/Mono ( 2430): GC_MAJOR: (LOS overflow) time 60.53ms, stw 67.10ms los size: 27648K in use: 8339K 03-02 09:31:13.578 I/art ( 2430): Starting a blocking GC Alloc 03-02 09:31:13.578 I/art ( 2430): Starting a blocking GC Alloc 03-02 09:31:13.580 I/art ( 2430): Starting a blocking GC Alloc 03-02 09:31:13.585 I/art ( 2430): Clamp target GC heap from 108MB to 96MB 03-02 09:31:13.585 I/art ( 2430): Alloc partial concurrent mark sweep GC freed 4847(397KB) AllocSpace objects, 0(0B) LOS objects, 4% free, 92MB/96MB, paused 191us total 5.177ms 03-02 09:31:13.585 I/art ( 2430): Starting a blocking GC Alloc 03-02 09:31:13.594 I/art ( 2430): Clamp target GC heap from 108MB to 96MB 03-02 09:31:13.594 I/art ( 2430): Alloc concurrent mark sweep GC freed 3(96B) AllocSpace objects, 0(0B) LOS objects, 4% free, 92MB/96MB, paused 172us total 8.267ms 03-02 09:31:13.594 I/art ( 2430): Forcing collection of SoftReferences for 7MB allocation 03-02 09:31:13.594 I/art ( 2430): Starting a blocking GC Alloc 03-02 09:31:13.602 I/art ( 2430): Clamp target GC heap from 108MB to 96MB 03-02 09:31:13.602 I/art ( 2430): Alloc concurrent mark sweep GC freed 3(96B) AllocSpace objects, 0(0B) LOS objects, 4% free, 92MB/96MB, paused 178us total 7.794ms 03-02 09:31:13.602 W/art ( 2430): Throwing OutOfMemoryError "Failed to allocate a 8294412 byte allocation with 4161352 free bytes and 3MB until OOM" 03-02 09:31:13.602 I/art ( 2430): Starting a blocking GC Alloc 03-02 09:31:13.602 I/art ( 2430): Starting a blocking GC Alloc 03-02 09:31:13.604 I/art ( 2430): Starting a blocking GC Alloc 03-02 09:31:13.609 I/art ( 2430): Clamp target GC heap from 108MB to 96MB 03-02 09:31:13.609 I/art ( 2430): Starting a blocking GC Alloc 03-02 09:31:13.613 I/art ( 2430): Clamp target GC heap from 108MB to 96MB 03-02 09:31:13.614 I/art ( 2430): Forcing collection of SoftReferences for 7MB allocation 03-02 09:31:13.614 I/art ( 2430): Starting a blocking GC Alloc 03-02 09:31:13.621 I/art ( 2430): Clamp target GC heap from 108MB to 96MB 03-02 09:31:13.621 I/art ( 2430): Alloc concurrent mark sweep GC freed 3(96B) AllocSpace objects, 0(0B) LOS objects, 4% free, 92MB/96MB, paused 186us total 7.048ms 03-02 09:31:13.621 W/art ( 2430): Throwing OutOfMemoryError "Failed to allocate a 8294412 byte allocation with 4162792 free bytes and 3MB until OOM" 03-02 09:31:13.621 D/skia ( 2430): --- allocation failed for scaled bitmap Unhandled Exception: Java.Lang.OutOfMemoryError: Failed to allocate a 8294412 byte allocation with 4162792 free bytes and 3MB until OOM



在此错误之前,我还可以在输出中看到:

03-02 09:28:17.208 I/mono-stdout( 2430): at FFImageLoading.MiniLoggerWrapper.Error (System.String errorMessage, System.Exception ex) [0x00000] in C:\projects\ffimageloading\source\FFImageLoading.Common\Helpers\MiniLoggerWrapper.cs:30 03-02 09:28:17.208 I/mono-stdout( 2430): at FFImageLoading.MiniLoggerWrapper.Error (System.String errorMessage, System.Exception ex) [0x00000] in C:\projects\ffimageloading\source\FFImageLoading.Common\Helpers\MiniLoggerWrapper.cs:30 03-02 09:28:17.208 I/mono-stdout( 2430): at FFImageLoading.MiniLoggerWrapper.Error (System.String errorMessage, System.Exception ex) [0x00000] in C:\projects\ffimageloading\source\FFImageLoading.Common\Helpers\MiniLoggerWrapper.cs:30 03-02 09:28:17.208 I/mono-stdout( 2430): at FFImageLoading.MiniLoggerWrapper.Error (System.String errorMessage, System.Exception ex) [0x00000] in C:\projects\ffimageloading\source\FFImageLoading.Common\Helpers\MiniLoggerWrapper.cs:30 03-02 09:28:17.208 I/mono-stdout( 2430): at FFImageLoading.MiniLoggerWrapper.Error (System.String errorMessage, System.Exception ex) [0x00000] in C:\projects\ffimageloading\source\FFImageLoading.Common\Helpers\MiniLoggerWrapper.cs:30 03-02 09:28:17.208 I/mono-stdout( 2430): at FFImageLoading.MiniLoggerWrapper.Error (System.String errorMessage, System.Exception ex) [0x00000] in C:\projects\ffimageloading\source\FFImageLoading.Common\Helpers\MiniLoggerWrapper.cs:30 03-02 09:28:17.208 I/mono-stdout( 2430): at FFImageLoading.MiniLoggerWrapper.Error (System.String errorMessage, System.Exception ex) [0x00000] in C:\projects\ffimageloading\source\FFImageLoading.Common\Helpers\MiniLoggerWrapper.cs:30 03-02 09:28:17.208 I/mono-stdout( 2430): at FFImageLoading.MiniLoggerWrapper.Error (System.String errorMessage, System.Exception ex) [0x00000] in C:\projects\ffimageloading\source\FFImageLoading.Common\Helpers\MiniLoggerWrapper.cs:30 03-02 09:28:17.208 I/mono-stdout( 2430): at FFImageLoading.MiniLoggerWrapper.Error (System.String errorMessage, System.Exception ex) [0x00000] in C:\projects\ffimageloading\source\FFImageLoading.Common\Helpers\MiniLoggerWrapper.cs:30 03-02 09:28:17.208 I/mono-stdout( 2430): at FFImageLoading.MiniLoggerWrapper.Error (System.String errorMessage, System.Exception ex) [0x00000] in C:\projects\ffimageloading\source\FFImageLoading.Common\Helpers\MiniLoggerWrapper.cs:30 03-02 09:28:17.208 I/mono-stdout( 2430): --- End of stack trace from previous location where exception was thrown --- 03-02 09:28:17.208 I/mono-stdout( 2430): at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <657aa8fea4454dc898a9e5f379c58734>:0 03-02 09:28:17.208 I/mono-stdout( 2430): at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0003e] in <657aa8fea4454dc898a9e5f379c58734>:0 03-02 09:28:17.208 I/mono-stdout( 2430): at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in <657aa8fea4454dc898a9e5f379c58734>:0 03-02 09:28:17.208 I/mono-stdout( 2430): at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in <657aa8fea4454dc898a9e5f379c58734>:0 03-02 09:28:17.208 I/mono-stdout( 2430): at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in <657aa8fea4454dc898a9e5f379c58734>:0 03-02 09:28:17.208 I/mono-stdout( 2430): at FFImageLoading.Work.WorkScheduler+d__43.MoveNext () [0x001bb] in C:\projects\ffimageloading\source\FFImageLoading.Common\Work\WorkScheduler.cs:158 03-02 09:28:17.208 I/mono-stdout( 2430): --- End of managed Java.Lang.OutOfMemoryError stack trace --- 03-02 09:28:17.208 I/mono-stdout( 2430): java.lang.OutOfMemoryError: OutOfMemoryError thrown while trying to throw OutOfMemoryError; no stack trace available 03-02 09:28:17.211 I/Choreographer( 2430): Skipped 80 frames! The application may be doing too much work on its main thread.



我更新了 ffimageloading 但错误仍然在这里......我尝试了
MONO_GC_PARAMS=bridge-implementation=old

在环境中.txt

这是我在 PCL 中的 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"
         x:Class="neoFly_Montana.Views.ProdutosView"          
         xmlns:local="clr-namespace:neoFly_Montana.LayoutScripts"
         xmlns:interface="clr-namespace:neoFly_Montana.Interface"
         xmlns:ffimageloading="clr-namespace:FFImageLoading.Forms;assembly=FFImageLoading.Forms"
         BackgroundImage="prodBackground.jpg"
         x:Name="ParentHost">

<ContentPage.Content>

        <Grid HorizontalOptions="FillAndExpand" RowSpacing="0" VerticalOptions="FillAndExpand">
        <Grid.RowDefinitions>
            <RowDefinition Height="9.4*"/>
            <RowDefinition Height="0.6*"/>
        </Grid.RowDefinitions>

        <!-- Lista de produtos -->
            <ListView Grid.Row="0" Grid.Column="0" ItemSelected="ListView_ItemSelected" CachingStrategy="RecycleElement" BackgroundColor="Transparent" x:Name="listview_produtos" Margin="10,0,10,0" SeparatorVisibility="None" HasUnevenRows="True" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">

            <ListView.Header>

                <!-- Observação -->
                <StackLayout>
                <StackLayout x:Name="prod_stack_obser" IsVisible="False" Orientation="Horizontal" Spacing="0" HorizontalOptions="FillAndExpand">
                    <Label x:Name="label_observ" HorizontalTextAlignment="Start" VerticalOptions="Center" FontSize="Small" TextColor="White" Style="{StaticResource labelsfont}" Margin="20,10,0,10" />
                    <ffimageloading:CachedImage x:Name="lapis" Source="lapis.png" IsVisible="False" HorizontalOptions="EndAndExpand"/>
                </StackLayout>
                <BoxView HeightRequest="20"/>
                </StackLayout>
            </ListView.Header>

                <ListView.ItemTemplate>
                    <DataTemplate>
                        <ViewCell>

                        <Grid Margin="20,0,20,20">
                            <ffimageloading:CachedImage Source="texturaCateg.png" BackgroundColor="{Binding FundoColor, Source={x:Reference ParentHost}}" Grid.Row="0" Grid.Column="0" Aspect="Fill" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand"/>

                            <StackLayout Grid.Row="0" Grid.Column="0" VerticalOptions="FillAndExpand" x:Name="produtos_stack_color" Spacing="10">

                                <StackLayout Spacing="0" Grid.Row="0" Grid.Column="0" HorizontalOptions="FillAndExpand" VerticalOptions="CenterAndExpand">

                                <StackLayout Orientation="Horizontal" Padding="10,10,10,0" VerticalOptions="Center" HorizontalOptions="FillAndExpand">
                                        <ffimageloading:CachedImage FadeAnimationForCachedImages="True" DownsampleUseDipUnits="True" DownsampleHeight="60" HeightRequest="83" WidthRequest="130" Source="{Binding imagem}" Aspect="Fill" VerticalOptions="CenterAndExpand" HorizontalOptions="CenterAndExpand" >
                                            <!--<ffimageloading:CachedImage.CacheKeyFactory>
                                                <interface:CustomCacheKeyFactory/>
                                            </ffimageloading:CachedImage.CacheKeyFactory>-->
                                        </ffimageloading:CachedImage>

                                        <!--HeightRequest="83" WidthRequest="100"-->
                                        <!--DownsampleHeight="83"-->
                                        <!--<StackLayout Orientation="Horizontal" VerticalOptions="Center" HorizontalOptions="EndAndExpand">
                                                <Label Style="{StaticResource labelsfont}" Text="R$" VerticalOptions="CenterAndExpand" TextColor="{Binding TextColor, Source={x:Reference ParentHost}}" FontSize="Medium"/>
                                                <Label Style="{StaticResource labelsfont}" Text="{Binding valor}" TextColor="{Binding TextColor, Source={x:Reference ParentHost}}" FontAttributes="Bold" VerticalOptions="Start" FontSize="30"/>
                                            </StackLayout>-->

                                </StackLayout>

                                        <!--nome-->
                                    <Label Text="{Binding nome}"  Margin="0,10,0,10" Style="{StaticResource labelsfont}" TextColor="{Binding TextColor, Source={x:Reference ParentHost}}" HorizontalTextAlignment="Center" FontAttributes="Bold" FontSize="Medium" HorizontalOptions="CenterAndExpand"/>

                                </StackLayout>
                                <Grid VerticalOptions="FillAndExpand">
                                    <BoxView Grid.Row="0" Grid.Column="0" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand" BackgroundColor="WhiteSmoke" Opacity="0.2"/>
                                    <Label Grid.Row="0" Grid.Column="0" Margin="10,10,10,10" HorizontalTextAlignment="Center" Text="{Binding observacao}" Opacity="1" FontSize="Small" Style="{StaticResource labelsfont}" TextColor="{Binding TextColor, Source={x:Reference ParentHost}}" HorizontalOptions="Center" />
                                </Grid>
                            </StackLayout>
                        </Grid>

                        </ViewCell>
                    </DataTemplate>
                </ListView.ItemTemplate>
                <ListView.Footer>

                <StackLayout>
                    <Grid x:Name="prod_rl_fundo" >
                    <Grid.Margin>
                        <OnPlatform x:TypeArguments="Thickness"
                                 iOS="20,0,20,0"
                                 Android="20,10,20,10"/>
                    </Grid.Margin>
                        <ffimageloading:CachedImage x:Name="prod_acomp_img" Source="texturaCateg.png" Grid.Row="0" Grid.Column="0" HorizontalOptions="FillAndExpand" Aspect="Fill" VerticalOptions="FillAndExpand"></ffimageloading:CachedImage>

                        <!--Acompanhamentos-->
                    <StackLayout x:Name="stack_acompanhamentos" Spacing="0" Grid.Row="0" Grid.Column="0">

                        <Grid x:Name="prod_acompanhamentos_title" HorizontalOptions="FillAndExpand">
                            <BoxView Grid.Row="0" Grid.Column="0" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand" BackgroundColor="WhiteSmoke" Opacity="0.2"/>
                            <Label x:Name="produtos_acomp_title" Text="+ Dois Acompanhamentos" Grid.Row="0" Grid.Column="0" Style="{StaticResource labelsfont}" Margin="20,20,20,20" FontAttributes="Bold" VerticalOptions="CenterAndExpand" HorizontalOptions="Center" />
                        </Grid>

                    </StackLayout>
                    </Grid>

                <BoxView HeightRequest="50"></BoxView>
                </StackLayout>

            </ListView.Footer>

            </ListView>

            <!--Rodapé Grid-->
            <Grid Grid.Row="1" Grid.Column="0" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">
            <ffimageloading:CachedImage Source="rodape.png" 
                       HorizontalOptions="FillAndExpand"
                       Aspect="AspectFill"
                       VerticalOptions="FillAndExpand"
                   Grid.Row="0"/>

            <!--Escrito Rodapé-->
            <StackLayout Orientation="Horizontal" 
                   Margin ="5,5,5,5" VerticalOptions="CenterAndExpand" HorizontalOptions="CenterAndExpand" Grid.Row="0">
                    <Label
                   FontSize="Micro"
                   Text="Você está em:"
                   Style="{StaticResource labelsfont}"
                   VerticalOptions="CenterAndExpand"
                   TextColor="White"/>

                    <Label FontSize="Micro"
                   Text="loja"
                   x:Name="prod_lbl_lojaprox"
                   Style="{StaticResource labelsfont}"
                   VerticalOptions="CenterAndExpand"
                   TextColor="{StaticResource laranjacolor}"
                   LineBreakMode="TailTruncation"
                   FontAttributes="Bold" />
                </StackLayout>
            </Grid>
        </Grid>

</ContentPage.Content>

我的主要事件:
  protected override void OnCreate(Bundle bundle)
    {
        TabLayoutResource = Resource.Layout.Tabbar;
        ToolbarResource = Resource.Layout.Toolbar;

        base.OnCreate(bundle);

        global::Xamarin.Forms.Forms.Init(this, bundle);

        //inicializa imageCircle
        ImageCircleRenderer.Init();

        //shared Preferences
        App.Init(new AndroidUserPreferences());

        //Gerenciador de memória
        CachedImageRenderer.Init(true);
        var config = new FFImageLoading.Config.Configuration()
        {
            VerboseLogging = false,
            VerbosePerformanceLogging = false,
            VerboseMemoryCacheLogging = false,
            VerboseLoadingCancelledLogging = false,
            FadeAnimationForCachedImages = false,
            MaxMemoryCacheSize = 50000000,
            FadeAnimationDuration = 500

            //Logger = new CustomLogger(),
        };
        FFImageLoading.ImageService.Instance.Initialize(config);

        LoadApplication(new App());
    }

     public override void OnTrimMemory([GeneratedEnum] TrimMemory level)
    {
        FFImageLoading.ImageService.Instance.InvalidateMemoryCache();
        GC.Collect(GC.MaxGeneration, GCCollectionMode.Forced);

        base.OnTrimMemory(level);
    }

    public override void OnLowMemory()
    {
        FFImageLoading.ImageService.Instance.InvalidateMemoryCache();
        GC.Collect(GC.MaxGeneration, GCCollectionMode.Forced);

        base.OnLowMemory();
    }

我的图像是 base64 (png)
它们有 8kb,它们是 150x84 px

其中之一:

data:image/png;base64,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



更新:我搜索了这么多……我需要缓存键吗??

最佳答案

您是否在 MainActivity 中实现了 InvalidateMemoryCache?阅读更多 https://github.com/luberda-molinet/FFImageLoading/wiki/Advanced-Usage#clear-cache-and-memory-considerations

    public override void OnTrimMemory([GeneratedEnum] TrimMemory level)
    {
        FFImageLoading.ImageService.Instance.InvalidateMemoryCache();
        GC.Collect(GC.MaxGeneration, GCCollectionMode.Forced);

        base.OnTrimMemory(level);
    }

    public override void OnLowMemory()
    {
        FFImageLoading.ImageService.Instance.InvalidateMemoryCache();
        GC.Collect(GC.MaxGeneration, GCCollectionMode.Forced);

        base.OnLowMemory();
    }

我认为,问题出在你的 base64 逻辑上,但让我们试试这个。

关于listview - 缓存图像 (ffimageloading) 在 android 上出现 OUT OF MEMORY 错误 - xamarin 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48990718/

相关文章:

android - ListView 的 Layout_width

scala - 读取行期间的 Source.fromInputStream 异常处理

C#、NUnit : How to deal with testing of exceptions and deferred execution

c# - 使用 SetBinding 的 Xamarin.Forms 绑定(bind)不起作用

android - 为什么android的值为:background still being used after a switch to a new theme

android - 当计时器在每一行内运行时如何提高列表性能

listview - 如何在 flutter 中将 ListView 滚动到底部

android - 更新 getCheckedItemPositions()

java - catch block 是否能够捕获 Throwable(包括错误和异常)

c# - 如何在 Xamarin IOS 中将参数传递给事件处理程序