4
votes

Flutter ne fonctionne plus après la mise à niveau

Mon projet fonctionnait parfaitement et aujourd'hui, j'ai mis à jour mon Flutter , puis tout commence à fonctionner.

En bas se trouve l'erreur qu'ils me donnent. Veuillez m'aider.

file:///Users/macbook/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/animated_background-1.0.4/lib/image_helper.dart:17:30: Error: The argument type 'dynamic Function(ImageInfo, bool)' can't be assigned to the parameter type 'ImageStreamListener'.
 - 'ImageInfo' is from 'package:flutter/src/painting/image_stream.dart' ('file:///Users/macbook/Documents/flutter/packages/flutter/lib/src/painting/image_stream.dart').
 - 'ImageStreamListener' is from 'package:flutter/src/painting/image_stream.dart' ('file:///Users/macbook/Documents/flutter/packages/flutter/lib/src/painting/image_stream.dart').
Try changing the type of the parameter, or casting the argument to 'ImageStreamListener'.
    newStream.removeListener(listener);
                             ^
file:///Users/macbook/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/animated_background-1.0.4/lib/image_helper.dart:20:25: Error: The argument type 'dynamic Function(ImageInfo, bool)' can't be assigned to the parameter type 'ImageStreamListener'.
 - 'ImageInfo' is from 'package:flutter/src/painting/image_stream.dart' ('file:///Users/macbook/Documents/flutter/packages/flutter/lib/src/painting/image_stream.dart').
 - 'ImageStreamListener' is from 'package:flutter/src/painting/image_stream.dart' ('file:///Users/macbook/Documents/flutter/packages/flutter/lib/src/painting/image_stream.dart').
Try changing the type of the parameter, or casting the argument to 'ImageStreamListener'.
  newStream.addListener(listener);
                        ^
file:///Users/macbook/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/animated_background-1.0.4/lib/image_helper.dart:21:41: Error: The argument type 'dynamic Function(ImageInfo, bool)' can't be assigned to the parameter type 'ImageStreamListener'.
 - 'ImageInfo' is from 'package:flutter/src/painting/image_stream.dart' ('file:///Users/macbook/Documents/flutter/packages/flutter/lib/src/painting/image_stream.dart').
 - 'ImageStreamListener' is from 'package:flutter/src/painting/image_stream.dart' ('file:///Users/macbook/Documents/flutter/packages/flutter/lib/src/painting/image_stream.dart').
Try changing the type of the parameter, or casting the argument to 'ImageStreamListener'.
  return () => newStream.removeListener(listener);
                                        ^
Compiler failed on /Users/macbook/AndroidStudioProjects/alimmentation/lib/main.dart
Finished with error: Gradle task assembleDebug failed with exit code 1


9 commentaires

Avez-vous essayé Flutter Clean? Cela fonctionnera peut-être? Peut-être aussi publier la sortie de flutter doctor et flutter run -v .... Assurez-vous également que vous disposez du dernier SDK de flutter et regardez ce fil de discussion qui vient de tomber github.com/flutter/flutter/issues/24645


Voici mon flutter doctor flutter doctor Doctor summary (pour voir tous les détails, lancez flutter doctor -v): [✓] Flutter (Channel beta, v1.6.3, sur Mac OS X 10.14.4 18E226, locale fr-BF ) [✓] Chaîne d'outils Android - développement pour les appareils Android (Android SDK version 28.0.3) [✓] Chaîne d'outils iOS - développement pour les appareils iOS (Xcode 10.2) [✓] Android Studio (version 3.4) [✓] VS Code (version 1.34 .0) [✓] Appareil connecté (1 disponible) • Aucun problème trouvé!


Peut-être postez-le dans la question la prochaine fois mais il est bon de savoir qu'il n'y a pas de problème


@JoeA Merci Pour une nouvelle fois, je vais le faire. y-a-t'il une solution?


Pourquoi ne corrigez-vous pas simplement le code? Il indique clairement quel est le problème et la mise à niveau du cadre peut introduire des changements de rupture.


La seule solution que je peux penser est comme je l'ai mentionné: (1) Assurez-vous que vous avez le dernier sdk de flutter, (2) essayez Flutter Clean ou (3) Cela pourrait être un problème de compatibilité AndroidX trouvé ici flutter.dev/docs/development/packages-and-plugins/… , (4) mise à jour le code que je recommanderais


Je suis presque sûr que l'erreur indique que la liste des paramètres de la fonction listener est fausse. les paramètres doivent correspondre à ceux du typedef ImageStreamListener


voir groups.google.com/forum/#!topic/flutter-announce / NWTszrEq9U0 - cela a été fait dans v1.6.2


Essayez de mettre à jour le package photo_view dans pubspec.yaml vers la dernière version, cela a résolu mon problème.


4 Réponses :


0
votes

J'ai eu le même problème, voici du code uniquement à titre d'exemple

Code qui a cassé:

var sunImage = new NetworkImage(incident.mobileSignature[0].uriFile,
          headers: AuthenticationService.getAuthHeaders());
sunImage.obtainKey(new ImageConfiguration()).then((val) {
    var load = sunImage.load(val);
    ImageListener imageListener = (ImageInfo imageInfo, syncCall) async {
        ByteData data =
              await imageInfo.image.toByteData(format: ui.ImageByteFormat.png);
          setState(() => this.signatureImage = data);
    };
    ImageStreamListener listenerStream = new ImageStreamListener(imageListener);
    load.addListener(listenerStream, onError: ...., onChunk: ......); // These last parameters are optional
});

Le code a cassé sur la ligne load.addListener ((listener, err) async {....

J'ai résolu la création d'une fonction ImageListener qui fait la même chose que ma fonction précédente avec l'écouteur variable. Ensuite, créez un ImageStreamListener qui reçoit ce ImageListener comme paramètre. Notez également que vous pouvez envoyer comme paramètres onError et onChunk dans ImageStreamListener.

var sunImage = new NetworkImage(incident.mobileSignature[0].uriFile,
          headers: AuthenticationService.getAuthHeaders());
sunImage.obtainKey(new ImageConfiguration()).then((val) {
    var load = sunImage.load(val);
    load.addListener((listener, err) async {
        ByteData data = await listener.image.toByteData(format:ui.ImageByteFormat.png);
        setState(() => this.signatureImage = data);
    });
  });
}


0 commentaires

0
votes

Modifiez votre dépendance animated_background dans le fichier pubspec.yaml comme suit:

animated_background:
    git: https://github.com/AndreBaltazar8/flutter_animated_background.git

Faites un flutter clean ensuite et reconstruire.

Raison : cela se produit parce que cette dépendance a en fait été modifiée dans le référentiel pour correspondre à certaines des modifications du framework liées à l'API Image, mais pas dans pub.dev .


0 commentaires

6
votes

Résolution d'un problème similaire en remplaçant

import 'package:flutter/painting.dart';

/*...*/.addListener(new ImageStreamListener((ImageInfo image, bool synchronousCall) { /*...*/ }) as ImageStreamListener);

par

/*...*/.addListener((ImageInfo image, bool synchronousCall) { /*...*/ });


0 commentaires

0
votes

Face à une erreur ImageStreamListener dans le plugin d'impression flutter. J'utilise la version flutter 1.5.4 hotfix 2.

Utilisez l'impression: 2.0.2 # corrigez-le dans cette version pour résoudre le problème ImageStreamListener.

J'espère que cela aide


0 commentaires