android - 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();
在初始化状态下,热重载然后它会请求权限。然后我授予许可。还是不行。然后返回我更改的代码。繁荣。代码正在运行并显示相机
我不知道发生了什么。
解决方案
推荐阅读
- android - Android和IOS应用跨平台开发
- lambda - 溪流
>> 如何从 MyClass 获取值或检查 List 是否为空 - r - 将 csv 导入 r 时,a-hat 是什么意思(以及如何摆脱它)?
- react-admin -
复杂的数组 - css - HTML5:如何包含
和
- 相同边框样式的标签
- c - 使用 pid linux 制作一个显示 CPU(%) 和内存使用率(kB) 的程序
- c# - 回显/调试时顺序颠倒
- node.js - Jest NPM:忽略单行
- javascript - 用户单击添加按钮时如何在 JSX/React JS 中添加更新的时间戳
- html - 向表单添加其他字段