首页 > 解决方案 > Flutter camera android throw exception 在构建Builder时抛出了以下NoSuchMethodError:

问题描述

我已经为员工的存在构建了应用程序,并为 WFH 使用了相机。在 Android 和 IOS 上使用 Dart 和 Flutter。我的应用程序返回异常并且不显示相机活动

======== Exception caught by widgets library =======================================================
The following NoSuchMethodError was thrown building Builder:
The method '[]' was called on null.
Receiver: null
Tried calling: [](0)

使用此包装相机

camera: ^0.9.2+2

这是我的代码

// Using the Camera package

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

List<CameraDescription> cameras;

Future<void> main() async {
  cameras = await availableCameras();
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: CameraApp(),
        floatingActionButton: null,
      ),
    );
  }
}

class CameraApp extends StatefulWidget {
  @override
  CameraAppState createState() => CameraAppState();
}

class CameraAppState extends State<CameraApp> {
  CameraController controller;
  @override
  void initState() {
    super.initState();
    controller = CameraController(cameras[0], ResolutionPreset.medium);
    controller.initialize().then((_) {
      if (!mounted) {
        return;
      }

      setState(() {});
    });
  }

  @override
  void dispose() {
    controller.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    if (!controller.value.isInitialized) {
      return Container();
    }
    return RotationTransition(
      turns: AlwaysStoppedAnimation(270 / 360),
      child: CameraPreview(controller),
    );
  }
}

我认为是因为他们必须请求许可,但是当我获得许可(来自设置)时,它仍然不起作用。我已经修改了代码把这个

cameras = await availableCameras();

在初始化状态下,热重载然后它会请求权限。然后我授予许可。还是不行。然后返回我更改的代码。繁荣。代码正在运行并显示相机

我不知道发生了什么。

标签: androidiosflutterdartcamera

解决方案


推荐阅读