-
Notifications
You must be signed in to change notification settings - Fork 29.8k
Closed
Labels
a: animationAnimation APIsAnimation APIsc: crashStack traces logged to the consoleStack traces logged to the consolec: regressionIt was better in the past than it is nowIt was better in the past than it is nowfound in release: 3.3Found to occur in 3.3Found to occur in 3.3found in release: 3.4Found to occur in 3.4Found to occur in 3.4frameworkflutter/packages/flutter repository. See also f: labels.flutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onThe issue has been confirmed reproducible and is ready to work onr: fixedIssue is closed as already fixed in a newer versionIssue is closed as already fixed in a newer version
Description
FadeInImage throws null pointer exception when switching from a cached image to an uncached image
It is possible that this PR is causing the problem.
Steps to Reproduce
- Execute
flutter runon the code sample - Click the FloatingActionButton to switch images
Expected results:
Switch images normally.
Actual results:
Throwing exceptions: Null check operator used on a null value

Code sample
import 'package:flutter/material.dart';
import 'package:transparent_image/transparent_image.dart';
void main() async {
runApp(const MyApp());
}
const _kImages = [
'https://pub.dev/static/hash-t3bgi1vk/img/landing-01.webp',
'https://pub.dev/static/hash-t3bgi1vk/img/landing-02.webp',
'https://pub.dev/static/hash-t3bgi1vk/img/landing-03.webp',
];
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: FutureBuilder<void>(
// Preload the first image
future: precacheImage(NetworkImage(_kImages[0]), context),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return const Material(
child: Center(child: CircularProgressIndicator()));
}
return const MyHomePage(title: 'Flutter Demo Home Page');
}),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({Key? key, required this.title}) : super(key: key);
final String title;
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
void _incrementCounter() {
setState(() {
_counter++;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
FadeInImage.memoryNetwork(
placeholder: kTransparentImage,
image: _kImages[_counter % _kImages.length],
),
const Text(
'You have pushed the button this many times:',
),
Text(
'$_counter',
style: Theme.of(context).textTheme.headline4,
),
],
),
),
floatingActionButton: FloatingActionButton(
// Click the button to switch images
onPressed: _incrementCounter,
tooltip: 'Increment',
child: const Icon(Icons.add),
),
);
}
}Logs
[+8343 ms] E/SurfaceSyncer( 8318): Failed to find sync for id=0
[ +1 ms] E/SurfaceSyncer( 8318): Failed to find sync for id=1
[+3459 ms]
══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
The following _CastError was thrown building _AnimatedFadeOutFadeIn(duration: 1000ms, dirty, state:
_AnimatedFadeOutFadeInState#8c208(ticker inactive, targetOpacity: null, placeholderOpacity: null)):
Null check operator used on a null value
The relevant error-causing widget was:
FadeInImage
FadeInImage:file:///K:/GitHub/@flutter/demos/demo_fade_in_image_null_3/lib/main.dart:66:25
When the exception was thrown, this was the stack:
#0 _AnimatedFadeOutFadeInState.build (package:flutter/src/widgets/fade_in_image.dart:542:70)
#1 StatefulElement.build (package:flutter/src/widgets/framework.dart:4992:27)
#2 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4878:15)
#3 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050:11)
#4 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#5 StatefulElement.update (package:flutter/src/widgets/framework.dart:5082:5)
#6 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#7 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#8 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050:11)
#9 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#10 StatefulElement.update (package:flutter/src/widgets/framework.dart:5082:5)
#11 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#12 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6307:14)
#13 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#14 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#15 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050:11)
#16 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#17 StatefulElement.update (package:flutter/src/widgets/framework.dart:5082:5)
#18 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#19 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5904:32)
#20 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6460:17)
#21 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#22 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6307:14)
#23 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#24 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#25 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#26 StatelessElement.update (package:flutter/src/widgets/framework.dart:4956:5)
#27 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#28 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#29 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#30 StatelessElement.update (package:flutter/src/widgets/framework.dart:4956:5)
#31 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#32 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#33 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#34 ProxyElement.update (package:flutter/src/widgets/framework.dart:5228:5)
#35 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#36 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#37 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#38 ProxyElement.update (package:flutter/src/widgets/framework.dart:5228:5)
#39 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#40 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5904:32)
#41 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6460:17)
#42 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#43 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#44 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#45 ProxyElement.update (package:flutter/src/widgets/framework.dart:5228:5)
#46 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#47 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#48 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050:11)
#49 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#50 StatefulElement.update (package:flutter/src/widgets/framework.dart:5082:5)
#51 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#52 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#53 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050:11)
#54 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#55 StatefulElement.update (package:flutter/src/widgets/framework.dart:5082:5)
#56 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#57 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#58 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#59 ProxyElement.update (package:flutter/src/widgets/framework.dart:5228:5)
#60 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#61 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#62 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050:11)
#63 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#64 StatefulElement.update (package:flutter/src/widgets/framework.dart:5082:5)
#65 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#66 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6307:14)
#67 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#68 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#69 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#70 ProxyElement.update (package:flutter/src/widgets/framework.dart:5228:5)
#71 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#72 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6307:14)
#73 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#74 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#75 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050:11)
#76 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#77 StatefulElement.update (package:flutter/src/widgets/framework.dart:5082:5)
#78 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#79 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#80 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050:11)
#81 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#82 StatefulElement.update (package:flutter/src/widgets/framework.dart:5082:5)
#83 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#84 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#85 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#86 ProxyElement.update (package:flutter/src/widgets/framework.dart:5228:5)
#87 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#88 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#89 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#90 ProxyElement.update (package:flutter/src/widgets/framework.dart:5228:5)
#91 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#92 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#93 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#94 ProxyElement.update (package:flutter/src/widgets/framework.dart:5228:5)
#95 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#96 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#97 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050:11)
#98 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#99 StatefulElement.update (package:flutter/src/widgets/framework.dart:5082:5)
#100 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#101 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#102 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#103 ProxyElement.update (package:flutter/src/widgets/framework.dart:5228:5)
#104 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#105 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#106 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050:11)
#107 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#108 StatefulElement.update (package:flutter/src/widgets/framework.dart:5082:5)
#109 Element.updateChild (package:flutter/src/widgets/framework.dart:3570:15)
#110 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904:16)
#111 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050:11)
#112 Element.rebuild (package:flutter/src/widgets/framework.dart:4604:5)
#113 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2667:19)
#114 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:882:21)
#115 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:378:5)
#116 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1175:15)
#117 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1104:9)
#118 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1015:5)
#119 _invoke (dart:ui/hooks.dart:148:13)
#120 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:318:5)
#121 _drawFrame (dart:ui/hooks.dart:115:31)
════════════════════════════════════════════════════════════════════════════════════════════════════
[ +42 ms]
Another exception was thrown: A RenderFlex overflowed by 99282 pixels on the bottom.
[ +711 ms]
Another exception was thrown: Null check operator used on a null value
Analyzing demo_fade_in_image_null_3...
No issues found! (ran in 2.4s)
[√] Flutter (Channel stable, 3.3.0, on Microsoft Windows [版本 10.0.22622.590], locale zh-CN)
• Flutter version 3.3.0 on channel stable at K:\SDK\flutter-stable
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision ffccd96b62 (7 days ago), 2022-08-29 17:28:57 -0700
• Engine revision 5e9e0e0aa8
• Dart version 2.18.0
• DevTools version 2.15.0
• Flutter download mirror https://storage.flutter-io.cn
[√] Android toolchain - develop for Android devices (Android SDK version 32.0.0)
• Android SDK at C:\SDK\android-sdk
• Platform android-33, build-tools 32.0.0
• ANDROID_HOME = C:\SDK\android-sdk
• Java binary at: C:\SDK\android-studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 11.0.12+7-b1504.28-7817840)
• All Android licenses accepted.
[√] Chrome - develop for the web
• Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
[√] Visual Studio - develop for Windows (Visual Studio Community 2019 16.11.15)
• Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
• Visual Studio Community 2019 version 16.11.32510.428
• Windows 10 SDK version 10.0.18362.0
[√] Android Studio (version 2021.2)
• Android Studio at C:\SDK\android-studio
• 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.12+7-b1504.28-7817840)
[√] IntelliJ IDEA Community Edition (version 2022.2)
• IntelliJ at C:\Users\ipcjs\AppData\Local\JetBrains\Toolbox\apps\IDEA-C\ch-0\222.3739.54
• Flutter plugin version 70.0.5
• Dart plugin version 222.3739.24
[√] VS Code (version 1.71.0)
• VS Code at C:\Users\ipcjs\AppData\Local\Programs\Microsoft VS Code
• Flutter extension version 3.48.0
[√] Proxy Configuration
• HTTP_PROXY is set
• NO_PROXY is
localhost,127.0.0.1,::1,192.168.0.230,dl.google.com,maven.aliyun.com,cdn.npm.taobao.org,registry.npm.taobao.org,npmmirror.com,registry.npmmirror.com,storage.flutter-io.cn,pub.flutter-io.cn,gitee.com,engdownload.ea
ssos.cn,upos-hz-mirrorakam.akamaized.net,www.bmtasmartbus.com,mirrors.tuna.tsinghua.edu.cn,amappc.oss-cn-zhangjiakou.aliyuncs.com,lbsyun-baidu.cdn.bcebos.com,a.amap.com,cdn.ipcjs.top,baidu.com,mirrors.aliyun.com,a
pple.com
• NO_PROXY contains localhost
• NO_PROXY contains ::1
• NO_PROXY contains 127.0.0.1
[√] Connected device (4 available)
• Pixel 6 Pro (mobile) • 192.168.1.17:41017 • android-arm64 • Android 13 (API 33)
• Windows (desktop) • windows • windows-x64 • Microsoft Windows [版本 10.0.22622.590]
• Chrome (web) • chrome • web-javascript • Google Chrome 104.0.5112.102
• Edge (web) • edge • web-javascript • Microsoft Edge 101.0.1210.53
[√] HTTP Host Availability
• All required HTTP hosts are available
Metadata
Metadata
Assignees
Labels
a: animationAnimation APIsAnimation APIsc: crashStack traces logged to the consoleStack traces logged to the consolec: regressionIt was better in the past than it is nowIt was better in the past than it is nowfound in release: 3.3Found to occur in 3.3Found to occur in 3.3found in release: 3.4Found to occur in 3.4Found to occur in 3.4frameworkflutter/packages/flutter repository. See also f: labels.flutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onThe issue has been confirmed reproducible and is ready to work onr: fixedIssue is closed as already fixed in a newer versionIssue is closed as already fixed in a newer version