I'm encountering a null error in my Flutter web app, specifically related to the MaterialApp widget. When I run the app, I immediately receive a NullPointerException pointing to line 30 where the MaterialApp widget starts. I am experiencing the error since i have added the routing part.
import 'package:flutter/material.dart';
// Other imports
void main() {
runApp(RateMyPicApp());
}
class RateMyPicApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'RateMe',
theme: ThemeData(
// Theme configuration
),
initialRoute: '/upload',
onGenerateRoute: (settings) {
switch (settings.name) {
case '/rate':
final Map<String, dynamic> args = settings.arguments as Map<String, dynamic>;
if (args != null && args.containsKey('id')) {
final String id = args['id'];
return MaterialPageRoute(builder: (context) => RatingPage(imageId: id));
}
break;
case '/upload':
default:
return MaterialPageRoute(builder: (context) => UploadScreen());
}
},
// Other properties and configuration
);
}
}
// Other classes and code
Try this Solution: Just add null
at the end:
import 'package:flutter/material.dart';
import 'package:user_interface_1/temp1.dart';
import 'package:user_interface_1/temp2.dart';
void main() {
runApp(RateMyPicApp());
}
class RateMyPicApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'RateMe',
theme: ThemeData(
// Theme configuration
),
initialRoute: '/upload',
onGenerateRoute: (settings) {
switch (settings.name) {
case '/rate':
final Map<String, dynamic> args =
settings.arguments as Map<String, dynamic>;
if (args != null && args.containsKey('id')) {
final String id = args['id'];
return MaterialPageRoute(builder: (context) => RatingPage());
}
break;
case '/upload':
default:
return MaterialPageRoute(builder: (context) => UploadScreen());
}
return null;
},
);
}
}