-1

我是 Flutter 的新手,我正在尝试打开相机,为此我遵循了示例代码,但是当我调试我的应用程序时,它给了我异常,如图所示错误图像

这是我的代码:

import 'dart:async';
import 'package:flutter/material.dart';
import 'package:camera/camera.dart';
import 'home.dart';

List<CameraDescription> cameras;

Future<Null> main() async {
  try {
    cameras = await availableCameras();
  } on CameraException catch (e) {
    print('Error: $e.code\nError Message: $e.message');
  }
  runApp(new MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'RealTime Detection',
      home: HomePage(cameras),
    );
  }
}
4

1 回答 1

2

你可以这样做:

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) => MaterialApp(
        debugShowCheckedModeBanner: false,
        title: 'RealTime Detection',
        home: FutureBuilder<List<CameraDescription>>(
          future: availableCameras(),
          builder: (
            BuildContext context,
            AsyncSnapshot<List<CameraDescription>> snapshot,
          ) {
            if (snapshot.hasData) {
              return HomePage(snapshot.data);
            } else {
              return CircularProgressIndicator();
            }
          },
        ),
      );
}
于 2021-06-22T08:56:27.500 回答