I did a very simple provider test, but I keep getting this error. I switched to flutter stable channel, upgraded, and cleaned it. the result is the same. It gives this error when I write the function to dispose method of any screen.
My purpose for using the dipsos method:
Disposal of ValueNotifiers: It's always a good practice to dispose all the ValueNotifiers once they are no longer in use which can save the app from memory loss.
I want current subscriptions to expire when I exit the screen for performance. I create a new valuenotifier when the screen is initialize and I want to dispose when I exit the screen.
main.dart file
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MultiProvider(
providers: [
ChangeNotifierProvider(create: (context) => ScreenChangeNotifier(),),
Provider(create: (context) => Genel(),)
],
child: MaterialApp(
theme: ThemeData(
primarySwatch: Colors.blue
),
title: 'Test',
home: HomeScreen(),
),
);
}
}
ScreenChangeNotifier.dart file
class ScreenChangeNotifier extends ChangeNotifier
{
void hello() => print("say hello");
}
HomeScreen.dart file
class HomeScreen extends StatefulWidget {
const HomeScreen({Key? key}) : super(key: key);
@override
State<HomeScreen> createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
@override
void dispose() {
context.read<ScreenChangeNotifier>().hello();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(),
);
}
}
this error
======== Exception caught by widgets library =======================================================
The following _CastError was thrown while finalizing the widget tree:
Null check operator used on a null value
When the exception was thrown, this was the stack:
#0 Element.widget (package:flutter/src/widgets/framework.dart:3203:31)
#1 Provider._inheritedElementOf (package:provider/src/provider.dart:341:17)
#2 Provider.of (package:provider/src/provider.dart:293:30)
#3 ReadContext.read (package:provider/src/provider.dart:656:21)
#4 _HomeScreenState.dispose (package:bencebilirpro/screens/HomeScreen.dart:11:13)
#5 StatefulElement.unmount (package:flutter/src/widgets/framework.dart:4983:11)
#6 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1926:13)
#7 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1924:7)
#8 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:6271:14)
#9 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1922:13)
#10 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1924:7)
#11 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4807:14)
#12 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1922:13)
#13 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1924:7)
#14 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:6271:14)
#15 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1922:13)
#16 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1924:7)
#17 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:6271:14)
#18 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1922:13)
#19 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1924:7)
#20 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4807:14)
#21 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1922:13)
#22 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1924:7)
#23 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:6271:14)
#24 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1922:13)
#25 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1924:7)
#26 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:6271:14)
#27 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1922:13)
#28 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1924:7)
#29 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4807:14)
#30 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1922:13)
#31 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1924:7)
#32 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4807:14)
#33 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1922:13)
#34 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1924:7)
#35 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4807:14)
#36 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1922:13)
#37 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1924:7)
#38 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:6271:14)
#39 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1922:13)
#40 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1924:7)
#41 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:6271:14)
#42 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1922:13)
#43 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1924:7)
#44 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4807:14)
#45 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1922:13)
#46 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1924:7)
#47 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:6271:14)
#48 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1922:13)
#49 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1924:7)
#50 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4807:14)
#51 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1922:13)
#52 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1924:7)
#53 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4807:14)
#54 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1922:13)
#55 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1924:7)
#56 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4807:14)
#57 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1922:13)
#58 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1924:7)
#59 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4807:14)
#60 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1922:13)
#61 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1924:7)
#62 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4807:14)
#63 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1922:13)
#64 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1924:7)
#65 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4807:14)
#66 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1922:13)
#67 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1924:7)
#68 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:6271:14)
#69 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1922:13)
#70 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1924:7)
#71 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4807:14)
#72 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1922:13)
#73 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1924:7)
#74 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4807:14)
#75 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1922:13)
#76 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1924:7)
#77 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4807:14)
#78 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1922:13)
#79 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1924:7)
#80 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4807:14)
#81 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1922:13)
#82 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1924:7)
#83 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4807:14)
#84 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1922:13)
#85 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1924:7)
#86 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:6271:14)
#87 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1922:13)
#88 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1924:7)
#89 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4807:14)
#90 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1922:13)
#91 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1924:7)
#92 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4807:14)
#93 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1922:13)
#94 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1924:7)
#95 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4807:14)
#96 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1922:13)
#97 ListIterable.forEach (dart:_internal/iterable.dart:39:13)
#98 _InactiveElements._unmountAll (package:flutter/src/widgets/framework.dart:1935:25)
#99 BuildOwner.lockState (package:flutter/src/widgets/framework.dart:2519:15)
#100 BuildOwner.finalizeTree (package:flutter/src/widgets/framework.dart:2932:7)
#101 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:884:19)
#102 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:363:5)
#103 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1144:15)
#104 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1081:9)
#105 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:995:5)
#109 _invoke (dart:ui/hooks.dart:151:10)
#110 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:308:5)
#111 _drawFrame (dart:ui/hooks.dart:115:31)
(elided 3 frames from dart:async)
====================================================================================================