當我嘗試使用相機變數時,我的代碼出現以下錯誤。如何糾正這一點。感謝您對此的幫助。
The non-nullable variable 'cameras' must be initialized.
相機螢屏.dart
import 'package:camera/camera.dart';
import 'package:flutter/material.dart';
List <CameraDescription> cameras;
class CameraScreen extends StatefulWidget {
const CameraScreen({Key? key}) : super(key: key);
@override
_CameraScreenState createState() => _CameraScreenState();
}
class _CameraScreenState extends State<CameraScreen> {
@override
Widget build(BuildContext context) {
return Scaffold();
}
}
主要的.dartt
Future <void> main() async{
WidgetsFlutterBinding.ensureInitialized();
cameras =await availableCameras();
runApp(const MyApp());
}
uj5u.com熱心網友回復:
這是由于 Flutter 和 Dart 良好的 null 安全特性。
變數現在不能為空,如果你想接受它們的null值,你必須使用它們使它們可以為空?
例如:
List <CameraDescription>? cameras;
如果你仍然不想讓它們為空,那么你可以使用一個late關鍵字,它允許我們稍后初始化值,但我們必須確保它在被使用之前被初始化。
例如:
late List <CameraDescription> cameras;
uj5u.com熱心網友回復:
使相機可變。喜歡:-
List <CameraDescription>? cameras;
uj5u.com熱心網友回復:
你不能離開一個非空變數而不分配飛鏢空安全不允許這個..
您的全域可變相機未初始化
List<> camera;//for global it is not acceptable
you can make List<>? camera;// now it is acceptable but you must need to initialize first before using it other wise it will throw exception
uj5u.com熱心網友回復:
您可以cameras List像這樣使 nullable:
List<CameraDescription>? cameras;
或者,如果您不想讓它為空,那么您可以像這樣創建一個空的相機串列:
List<CameraDescription> cameras = List<CameraDescription>.empty(growable: true);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/431597.html
