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
4 Réponses :
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);
});
});
}
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 .
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) { /*...*/ });
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
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
listenerest fausse. les paramètres doivent correspondre à ceux du typedefImageStreamListenervoir 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.