No MaterialLocalizations found. 报错的意思是 runAPP() 需要接收一个extends StatelessWidget 的class ,并且这个类的widget最外层需要包裹一个 MaterialApp。
但是有一种此类报错是明明已经这样做了,Android端报错 iOS端不报错,那就需要你引入一个MaterialLocalizations。
第一步
pubspec.yaml里加入
dependencies:
flutter_localizations:
sdk: flutter
第二步
MaterialApp里加入
localizationsDelegates:[GlobalMaterialLocalizations.delegate,],
void main() {
SpUtil.getInstance().then((e) {
if (SpUtil.getString(tokenKey).length > 0){
routeList['/'] = (context) => TaskListPage();
}
runApp(MyApp());
});
}
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'sloth',
debugShowCheckedModeBanner: false,
theme: ThemeData(
primarySwatch: Colors.blue,
),
initialRoute: '/',
routes: routeList,
// home: TaskListPage(),
localizationsDelegates: [
GlobalMaterialLocalizations.delegate,
],
supportedLocales: [
const Locale("zh", "CH"),
const Locale("en", "US"),
],
);
}
}
一己之见欢迎前来探讨斧正。