Ошибка на устройстве: оператор проверки Null, используемый для нулевого значения

#flutter #dart #null #youtube-api

Вопрос:

Мой код на главной странице.dart

 // ignore_for_file: sized_box_for_whitespace, prefer_const_constructors, unused_element, avoid_unnecessary_containers  import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:friendlycourse/UI/modals/channel_info.dart'; import 'package:friendlycourse/UI/net/services.dart'; import 'package:friendlycourse/UI/screens/drawer.dart';  class MyHomePage extends StatefulWidget {  const MyHomePage({Key? key, required this.title}) : super(key: key);  final String title;   @override  Statelt;MyHomePagegt; createState() =gt; _MyHomePageState(); }  class _MyHomePageState extends Statelt;MyHomePagegt; {  // get searchBar =gt; null;  ChannelInfo? _channelInfo;  Item? _item;  // late bool _loading;  @override  void initState() {  super.initState();  // _loading = true;  _getChannelInfo();  }   _getChannelInfo() async {  _channelInfo = await Services.getChannelInfo();  _item = _channelInfo!.items[0];  // setState(() {  // _loading = false;  // });  }   @override  Widget build(BuildContext context) {  return Scaffold(  drawer: MyDrawer(),  appBar: AppBar(  title: Text(widget.title),  // actions: lt;Widgetgt;[  // IconButton(icon: Icon(Icons.search),onPressed: (){},)  // ],  ),  body: Container(  child: Column(  children: [  _buildInfoView(),  ],  ),  ),  );  }   _buildInfoView() {  return Container(  child: Card(  child: Row(  children: [  CircleAvatar(  backgroundImage: CachedNetworkImageProvider(  _item!.snippet.thumbnails.medium.url,  ),  ),  SizedBox(  width: 20,  ),  Text(  _item!.snippet.title,  style: TextStyle(  fontSize: 20,  fontWeight: FontWeight.w400,  ),  )  ],  ),  ));  } }      My code in services.dart    import 'dart:io';    import 'package:friendlycourse/UI/modals/channel_info.dart';  import 'package:friendlycourse/UI/net/constants.dart';  import 'package:http/http.dart' as http;  import 'package:http/http.dart';    class Services {  static const channelId = 'UCBwmMxybNva6P_5VmxjzwqA';  static const _baseUrl = 'youtube.googleapis.com';  static Futurelt;ChannelInfogt; getChannelInfo() async {  Maplt;String, Stringgt; parameters = {  'part': 'snippet',  'id': channelId,  'key': Constant.apikey,  };  Maplt;String, Stringgt; headers = {  HttpHeaders.contentTypeHeader: 'application/json'  };  Uri uri = Uri.https(_baseUrl, 'youtube/v3/search', parameters);  Response response = await http.get(uri, headers: headers);  print(response.body);  ChannelInfo channelInfo = channelInfoFromJson(response.body);  return channelInfo;**  
  1. подчеркнутый текст

** Я пытаюсь сделать приложение для видеоплеера flutter с помощью youtube api v3, и в коде нет ошибки, но после его запуска мое устройство выдает мне ошибку: «оператор проверки null использовал нулевое значение» я не знаю, как решить проблему, пожалуйста, помогите мне. Я новичок в флаттере. } }

Комментарии:

1. Вы получаете эту ошибку в строке _item!.snippet.thumbnail?

Ответ №1:

повторите свой код:

 _channelInfo = await Services.getChannelInfo();  _item = _channelInfo!.items[0];  

с этим:

 await Services.getChannelInfo().then((value) =gt; {  _item = value!.items[0]; });  

Комментарии:

1. Теперь я получаю эту ошибку «Ожидал найти»}»».