Эта ошибка возникает при попытке включить камеру. Как я могу исправить ошибку. пожалуйста, помогите ...
════════ Exception caught by widgets library ═══════════════════════════════════════════════════════
The following NoSuchMethodError was thrown building KeyedSubtree-[<0>]:
**The method '[]' was called on null.
Receiver: null
Tried calling: [](0)**
The relevant error-causing widget was:
TabBarView file:///C:/Users/PC/AndroidStudioProjects/flutter_app/lib/main.dart:69:38
When the exception was thrown, this was the stack:
#0 Object.noSuchMethod (dart:core-patch/object_patch.dart:53:5)
#1 _CameraTabPageState.initState (package:flutter_app/tab_pages/camera.dart:17:42)
#2 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4355:58)
#3 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
#4 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
...
════════════════════════════════════════════════════════════════════════════════════════════════════
Здесь, в main.dart
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:camera/camera.dart';
//Own page imports
import 'package:flutter_app/tab_pages/camera.dart';
List<CameraDescription> cameras;
Future<void> main() async{
runApp(MyApp());
}
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.red,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
final tabs=<Tab>[
Tab(icon: Icon(Icons.photo_camera)),
Tab(text: "Chats",),
Tab(text: "Status",),
Tab(text: "Calls",),
];
final tabPages=<Widget>[
CameraTabPage(),
Center(child: Text("Chats"),),
Center(child: Text("Status"),),
Center(child: Text("Calls"),),
];
@override
Widget build(BuildContext context) {
return DefaultTabController(
initialIndex: 1,
length: tabs.length,
child: CustomScrollView(
slivers: <Widget>[
SliverAppBar(
snap: true,
pinned: false,
floating: true,
title: Text("TellMe"),
bottom: TabBar(tabs: tabs),
actions: <Widget>[
IconButton(icon: Icon(Icons.search, color: Colors.white,),onPressed: (){},tooltip: "Search",),
IconButton(icon: Icon(Icons.menu, color: Colors.white),onPressed: (){},tooltip: "More options",),
],
),
SliverFillRemaining(child: TabBarView(children: tabPages,),
),
],
),
);
}
}
здесь, в camera.dart
import 'package:flutter/material.dart';
import 'package:camera/camera.dart';
import 'package:flutter_app/main.dart';
class CameraTabPage extends StatefulWidget {
@override
_CameraTabPageState createState() => _CameraTabPageState();
}
class _CameraTabPageState extends State<CameraTabPage> {
CameraController controller;
@override
void initState() {
// TODO: implement initState
super.initState();
controller = CameraController(cameras[0],ResolutionPreset.medium);
controller.initialize().then((_){
if(!mounted){
return;
}
setState((){});
});
}
@override
void dispose() {
controller?.dispose();
// TODO: implement dispose
super.dispose();
}
@override
Widget build(BuildContext context) {
if(!controller.value.isInitialized){
return Container();
}
return AspectRatio(
aspectRatio: controller.value.aspectRatio,
child: CameraPreview(controller),
);
}
}