Android 错误:参数类型';无效函数(ImageInfo,bool)和#x27;can';不能分配给参数类型';ImageStreamListener';

Android 错误:参数类型';无效函数(ImageInfo,bool)和#x27;can';不能分配给参数类型';ImageStreamListener';,android,flutter,dart,flutter-dependencies,Android,Flutter,Dart,Flutter Dependencies,升级Flatter run后,应用程序不会运行。我升级是因为ImageStreamListener 我试图改变不同的频道[主频道、稳定频道、开发频道],但不工作 我在颤振中发现了这个问题,但它并没有帮助 这是我的flatter医生 [✓] Flutter (Channel unknown, v1.7.11, on Mac OS X 10.14.5 18F132, locale en-PE) [✓] Android toolchain - develop for Android devices (

升级Flatter run后,应用程序不会运行。我升级是因为
ImageStreamListener

我试图改变不同的频道[主频道、稳定频道、开发频道],但不工作

我在颤振中发现了这个问题,但它并没有帮助

这是我的
flatter医生

[✓] Flutter (Channel unknown, v1.7.11, on Mac OS X 10.14.5 18F132, locale en-PE)
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 10.2.1)
[✓] iOS tools - develop for iOS devices
[✓] Chrome - develop for the web
[✓] Android Studio (version 3.4)
[!] IntelliJ IDEA Ultimate Edition (version 2019.1)
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
[✓] VS Code (version 1.36.0)
[✓] Connected device (3 available)
以及错误消息

Compiler message:                                                       
file:///Users/enzoftware/Development/flutter/.pub-cache/hosted/pub.dartlang.org/palette_generator-0.1.1/lib/palette_generator.dart:188:29: Error: The argument type 'void Function(ImageInfo, bool)' can't be assigned to the parameter type 'ImageStreamListener'.
 - 'ImageInfo' is from 'package:flutter/src/painting/image_stream.dart' ('file:///Users/enzoftware/Development/flutter/packages/flutter/lib/src/painting/image_stream.dart').
 - 'ImageStreamListener' is from 'package:flutter/src/painting/image_stream.dart' ('file:///Users/enzoftware/Development/flutter/packages/flutter/lib/src/painting/image_stream.dart').
Try changing the type of the parameter, or casting the argument to 'ImageStreamListener'.
      stream.removeListener(imageListener);                             
                            ^                                           
file:///Users/enzoftware/Development/flutter/.pub-cache/hosted/pub.dartlang.org/palette_generator-0.1.1/lib/palette_generator.dart:194:31: Error: The argument type 'void Function(ImageInfo, bool)' can't be assigned to the parameter type 'ImageStreamListener'.
 - 'ImageInfo' is from 'package:flutter/src/painting/image_stream.dart' ('file:///Users/enzoftware/Development/flutter/packages/flutter/lib/src/painting/image_stream.dart').
 - 'ImageStreamListener' is from 'package:flutter/src/painting/image_stream.dart' ('file:///Users/enzoftware/Development/flutter/packages/flutter/lib/src/painting/image_stream.dart').
Try changing the type of the parameter, or casting the argument to 'ImageStreamListener'.
        stream.removeListener(imageListener);                           
                              ^                                         
file:///Users/enzoftware/Development/flutter/.pub-cache/hosted/pub.dartlang.org/palette_generator-0.1.1/lib/palette_generator.dart:201:24: Error: The argument type 'void Function(ImageInfo, bool)' can't be assigned to the parameter type 'ImageStreamListener'.
 - 'ImageInfo' is from 'package:flutter/src/painting/image_stream.dart' ('file:///Users/enzoftware/Development/flutter/packages/flutter/lib/src/painting/image_stream.dart').
 - 'ImageStreamListener' is from 'package:flutter/src/painting/image_stream.dart' ('file:///Users/enzoftware/Development/flutter/packages/flutter/lib/src/painting/image_stream.dart').
Try changing the type of the parameter, or casting the argument to 'ImageStreamListener'.
    stream.addListener(imageListener);                                  
                       ^                                                
Compiler failed on /Users/enzoftware/Projects/Wibo/wibo-flutter-mobile-user/lib/main.dart

FAILURE: Build failed with an exception.                                

* Where:                                                                
Script '/Users/enzoftware/Development/flutter/packages/flutter_tools/gradle/flutter.gradle' line: 652

* What went wrong:                                                      
Execution failed for task ':app:compileflutterBuildDebugArm'.           
> Process 'command '/Users/enzoftware/Development/flutter/bin/flutter'' finished with non-zero exit value 1

* Try:                                                                  
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org                              

BUILD FAILED in 29s                                                     
Running Gradle task 'assembleDebug'...                                  
Running Gradle task 'assembleDebug'... Done                        29.7s
Gradle task assembleDebug failed with exit code 1

提前感谢。

该API最近进行了重大更改

这里有一个新旧用法的例子

    // get the width, height
    Image image = new Image.file(myImageFile);
    Completer<ImageInfo> completer = Completer();

    // Old API
//    image.image
//        .resolve(new ImageConfiguration())
//        .addListener((ImageInfo info, bool _) {
//      completer.complete(info);
//    });

    // New API
    image.image
        .resolve(new ImageConfiguration())
        .addListener(ImageStreamListener((ImageInfo info, bool _) {
      completer.complete(info);
    }));

    // wait for ImageInfo to finish
    ImageInfo imageInfo = await completer.future;
//获取宽度、高度
Image Image=newimage.file(myImageFile);
Completer Completer=Completer();
//旧API
//形象
//.resolve(新的ImageConfiguration())
//.addListener((图像信息,布尔){
//完成者。完成(信息);
//    });
//新API
形象
.resolve(新的ImageConfiguration())
.addListener(ImageStreamListener((ImageInfo信息,bool){
完成者。完成(信息);
}));
//等待ImageInfo完成
ImageInfo ImageInfo=等待完成者.future;

我为此挣扎了几天,然后,作为一个实验,从zoomable_图像复制了源代码,创建了一个本地文件zoomable.dart,并编辑了有问题的行:

_imageStream.addListener(_handleImageLoaded);
_imageStream.removeListener(_handleImageLoaded);


作为git的新手,我觉得没有能力检查git文件并修复它。所有者不应该这样做吗?

我从下面的链接获得了解决方案:

对于正在使用firebase_storage_image.dart文件的用户,这个问题主要会出现。上面的代码将适用于此


@Daibaku,看起来像是palette_生成器插件的0.2.0版(问题中的0.1.1版)于2019年7月19日发布。因此,这可能会更新为新的API。感谢您的评论。事实上,我在升级sdk到最新的sdk后就面临这个问题。我该怎么办?@aaronvargas我需要在哪里应用这些更改?因为在我的源代码中,我从来没有找到那个旧代码。@HirenVaghela,您正在使用的库很可能需要更新。在OP中,需要将调色板_生成器-0.1.1更新为0.2.0
_imageStream.addListener(ImageStreamListener(_handleImageLoaded));
_imageStream.removeListener(ImageStreamListener(_handleImageLoaded));
this._networkImage.image.resolve(ImageConfiguration()).addListener(
            ImageStreamListener((ImageInfo image, bool synchronousCall) {
          if (mounted)
            setState(() => this._imageDownloadState = ImageDownloadState.Done);
        }));