Skip to content

图片列表图片加载异常 #42

@LShuXin

Description

@LShuXin

问题: 单图加载正常,大的图片列表展示时只有前面的几个能正常展示,后面的图片都加载不出来

环境:

flutter doctor -v
[✓] Flutter (Channel stable, 3.3.6, on macOS 13.0.1 22A400 darwin-arm, locale zh-Hans-CN)
    • Flutter version 3.3.6 on channel stable at /Users/smileflutter/IDE/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 6928314d50 (3 months ago), 2022-10-25 16:34:41 -0400
    • Engine revision 3ad69d7be3
    • Dart version 2.18.2
    • DevTools version 2.15.0
    • Pub download mirror https://pub.flutter-io.cn
    • Flutter download mirror https://storage.flutter-io.cn

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    • Android SDK at /Users/smileflutter/Library/Android/sdk
    • Platform android-33, build-tools 33.0.0
    • ANDROID_HOME = /Users/smileflutter/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14B47b
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)

[✓] VS Code (version 1.75.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension can be installed from:
      🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 13.0.1 22A400 darwin-arm
    • Chrome (web)    • chrome • web-javascript • Google Chrome 109.0.5414.119

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!




pubspec.yaml

dependencies:
  flutter_boost:
    path: 'packages/flutter_boost'
    git:
      url: 'https://github.com/alibaba/flutter_boost.git'
      ref: '4.1.1'
  power_image: 0.1.0-pre.2

dependency_overrides:
  power_image_ext: 3.0.0

PowerImage相关配置:

imageCache.maximumSize = 30;
imageCache.maximumSizeBytes = 50 * 1024 * 1024;

class CustomFlutterBinding extends WidgetsFlutterBinding with BoostFlutterBinding {
  @override
  ImageCache createImageCache() {
    return ImageCacheExt();
  }
}

// 使用example中的模板
- (void)initPowerImage {
    [[PowerImageLoader sharedInstance] registerImageLoader:[PowerImageNetworkImageLoader new] forType:kPowerImageImageTypeNetwork];
    [[PowerImageLoader sharedInstance] registerImageLoader:[PowerImageAssetsImageLoader new] forType:kPowerImageImageTypeNativeAsset];
    [[PowerImageLoader sharedInstance] registerImageLoader:[PowerImageFlutterAssetImageLoader new] forType:kPowerImageImageTypeAsset];
    [[PowerImageLoader sharedInstance] registerImageLoader:[PowerImageFileImageLoader new] forType:kPowerImageImageTypeFile];
}

复现路径:
创建一个包含34张平均尺寸为1M的图片列表,简单的在页面上加载图片

详细日志:

2023-02-07 19:07:15.275359+0800 SmileMiao[4210:1105072] [Unknown process name] CGBitmapContextInfoCreate: unable to allocate 78880000 bytes for bitmap data
2023-02-07 19:07:15.275456+0800 SmileMiao[4210:1105072] [Unknown process name] CGDisplayListDrawInContext: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
2023-02-07 19:07:15.275497+0800 SmileMiao[4210:1105072] [Unknown process name] CGBitmapContextCreateImage: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
2023-02-07 19:07:15.276292+0800 SmileMiao[4210:1105156] *** Assertion failure in -[PowerImageTexture createPixelBufferFromImage:andSize:], PowerImageTexture.m:65
2023-02-07 19:07:15.281897+0800 SmileMiao[4210:1105072] [Unknown process name] CGBitmapContextInfoCreate: unable to allocate 64339968 bytes for bitmap data
2023-02-07 19:07:15.282036+0800 SmileMiao[4210:1105072] [Unknown process name] CGDisplayListDrawInContext: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
./../third_party/dart/runtime/vm/zone.cc: 96: error: Out of memory.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions