Flutterで「no material widget found」エラーが発生する場合の解決方法


  1. MaterialAppが正しく設定されていない: Flutterアプリでは、通常、ルートウィジェットとしてMaterialAppを使用します。このエラーが発生する場合、MaterialAppが正しく設定されていない可能性があります。以下の例を参考に、MaterialAppを適切に構成してください。
import 'package:flutter/material.dart';
void main() {
  runApp(MyApp());
}
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'My App',
      home: Scaffold(
        appBar: AppBar(
          title: Text('My App'),
        ),
        body: Container(
          child: Text('Hello, World!'),
        ),
      ),
    );
  }
}
  1. MaterialAppがルートに正しく配置されていない: ウィジェットツリーのルートにMaterialAppを正しく配置していることを確認してください。例えば、MaterialAppが他のウィジェット内に埋め込まれている場合にも、このエラーが発生する可能性があります。

  2. Materialウィジェットが不足している: MaterialAppの下にあるウィジェットは、通常、Materialウィジェットでラップする必要があります。もしMaterialウィジェットが抜けている場合、このエラーが発生します。以下の例を参考に、Materialウィジェットを追加してください。

import 'package:flutter/material.dart';
void main() {
  runApp(MyApp());
}
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'My App',
      home: Scaffold(
        appBar: AppBar(
          title: Text('My App'),
        ),
        body: Material(  // Materialウィジェットを追加
          child: Container(
            child: Text('Hello, World!'),
          ),
        ),
      ),
    );
  }
}