Android assembleDebug无法指示一个文件上的错误,即使在修复了所述错误之后也是如此

Android assembleDebug无法指示一个文件上的错误,即使在修复了所述错误之后也是如此,android,flutter,android-studio,dart,gradle,Android,Flutter,Android Studio,Dart,Gradle,我当前的flatter项目在运行Gradle任务'assembleDebug'…步骤期间失败,它指出了一个.dart文件中的一些错误。问题是,即使在修复了其中一些错误后,它仍会不断抛出相同的错误 有三个错误的省道 import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart

我当前的flatter项目在
运行Gradle任务'assembleDebug'…
步骤期间失败,它指出了一个.dart文件中的一些错误。问题是,即使在修复了其中一些错误后,它仍会不断抛出相同的错误

有三个错误的省道

import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:reader_app/helpers/crawler.dart';
import 'package:reader_app/models/source/search_result.dart';
import 'package:reader_app/models/state.dart';
import 'package:reader_app/routes/crawler_novel.dart';
import 'package:reader_app/widgets/navigation.dart';
import 'package:provider/provider.dart';

class RouteCrawlerResults extends StatefulWidget {
  static final String routeName = '/crawler/results';

  @override
  State<StatefulWidget> createState() => new RouteCrawlerResultsState();
}

class RouteCrawlerResultsState extends State<RouteCrawlerResults> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      resizeToAvoidBottomInset: false,
      appBar: AppBar(title: Text('Search Results')),
      body: _crawlerResultsBody(context),
      bottomNavigationBar: NavBar(context),
    );
  }
}

Widget _crawlerResultsBody(BuildContext context) {
  Future<Map<Uri, List<SearchResult>>> getResults() async {
    CrawlerHelper crawler = CrawlerHelper.instance;
    CrawlerSearchState provider =
        Provider.of<CrawlerSearchState>(context, listen: false);
    Map<Uri, List<SearchResult>> searchResults =
        await crawler.searchNovels(provider.serachQuery);
    return searchResults;
  }

  return FutureBuilder(
      future: getResults(),
      builder: (BuildContext context,
          AsyncSnapshot<Map<Uri, List<SearchResult>>> snapshot) {
        if (snapshot.connectionState == ConnectionState.waiting)
          return Center(
            child: Text('Fetching results.'),
          );
        else {
          if (snapshot.hasError) {
            return Center(child: Text('Error fetching results.'));
          }
          /*if (snapshot.data.entries.length == 0) {
            return Center(child: Text('No results.'));
          }*/
          CrawlerSearchState provider =
              Provider.of<CrawlerSearchState>(context, listen: false);
          provider.searchResults = snapshot.data;
          return _crawlerResultsList(context);
        }
      });
}

Widget _crawlerResultsList(BuildContext context) {
  CrawlerSearchState provider =
      Provider.of<CrawlerSearchState>(context, listen: false);

  List<SearchResult> searchResults = provider.searchResults.entries
      .map((entry) {
        return entry.value;
      })
      .toList()
      .expand((element) => element)
      .toList();

  return ListView(
    padding: const EdgeInsets.all(7),
    children: [
      ...searchResults
          .map((result) => _crawlerResultsListItem(context, result))
          .toList()
    ],
  );
}

Widget _crawlerResultsListItem(BuildContext context, SearchResult result) {
  ReaderState state =
      Provider.of<ReaderState>(context, listen: false);

  CrawlerSearchState crawlerSearchState =
      Provider.of<CrawlerSearchState>(context, listen: false);

  void onTap() {
    crawlerSearchState.resultSelected = result;
    Navigator.pushNamed(context, RouteCrawlerNovel.routeName);
  }

  return InkWell(
    onTap: onTap,
    child: Container(
        padding: const EdgeInsets.all(5),
        margin: const EdgeInsets.all(7),
        height: 120,
        decoration: BoxDecoration(
          borderRadius: BorderRadius.all(Radius.circular(5)),
          color: Theme.of(context).cardColor,
        ),
        child: Flex(
          direction: Axis.horizontal,
          crossAxisAlignment: CrossAxisAlignment.stretch,
          children: [
            Flexible(
                flex: 0,
                child: Container(
                  width: 80,
                  decoration: BoxDecoration(
                    borderRadius: BorderRadius.all(Radius.circular(5)),
                    image: DecorationImage(
                      fit: BoxFit.cover,
                      image: CachedNetworkImageProvider(
                        result.cover.toString(),
                        cacheManager: state .cacheManager,
                      ),
                    ),
                  ),
                )),
            SizedBox(
              width: 15,
            ),
            Flexible(
              flex: 10,
              child: Column(
                crossAxisAlignment: CrossAxisAlignment.stretch,
                mainAxisAlignment: MainAxisAlignment.spaceBetween,
                children: [
                  Flexible(
                    flex: 10,
                    child: Text(
                      result.title,
                      maxLines: 3,
                      style: TextStyle(
                          fontSize:
                              Theme.of(context).textTheme.bodyText1.fontSize * 1.2),
                    ),
                  ),
                  Flexible(
                      flex: 0,
                      child: Text(
                        result.source.toString(),
                        textAlign: TextAlign.end,
                      ))
                ],
              ),
            ),
            SizedBox(
              width: 5,
            )
          ],
        )),
  );
}
/E:/Archivo/Estudio/Git/reader_app/lib/routes/crawler_results.dart:52:29: Error: Property 'entries' cannot be accessed on 'Map<Uri, List<SearchResult>>?' because it is potentially null.
 - 'Map' is from 'dart:core'.
 - 'Uri' is from 'dart:core'.
 - 'List' is from 'dart:core'.
 - 'SearchResult' is from 'package:reader_app/models/source/search_result.dart' ('lib/models/source/search_result.dart').
Try accessing using ?. instead.
          if (snapshot.data.entries.length == 0) {
                            ^^^^^^^
/E:/Archivo/Estudio/Git/reader_app/lib/routes/crawler_results.dart:142:69: Error: Property 'fontSize' cannot be accessed on 'TextStyle?' because it is potentially null.
 - 'TextStyle' is from 'package:flutter/src/painting/text_style.dart' ('/C:/Android/flutter/packages/flutter/lib/src/painting/text_style.dart').
Try accessing using ?. instead.
                              Theme.of(context).textTheme.bodyText1.fontSize *
                                                                    ^^^^^^^^
/E:/Archivo/Estudio/Git/reader_app/lib/routes/crawler_results.dart:142:78: Error: Operator '*' cannot be called on 'double?' because it is potentially null.
                              Theme.of(context).textTheme.bodyText1.fontSize *
                                                                             ^


FAILURE: Build failed with an exception.

* Where:
Script 'C:\Android\flutter\packages\flutter_tools\gradle\flutter.gradle' line: 991

* What went wrong:
Execution failed for task ':app:compileFlutterBuildDebug'.
> Process 'command 'C:\Android\flutter\bin\flutter.bat'' finished with non-zero exit value 1

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 11s
Exception: Gradle task assembleDebug failed with exit code 1
import'package:cached_network_image/cached_network_image.dart';
进口“包装:颤振/cupertino.dart”;
进口“包装:颤振/材料.省道”;
导入“package:reader_app/helpers/crawler.dart”;
导入“package:reader_app/models/source/search_result.dart”;
导入“package:reader_app/models/state.dart”;
导入“package:reader_app/routes/crawler_novel.dart”;
导入“package:reader_app/widgets/navigation.dart”;
导入“包:provider/provider.dart”;
类RouteCrawlerResults扩展StatefulWidget{
静态最终字符串routeName='/crawler/results';
@凌驾
State createState()=>新的RouteCrawlerResultsState();
}
类RouteCrawlerResultsState扩展了状态{
@凌驾
小部件构建(构建上下文){
返回脚手架(
resizeToAvoidBottomInset:false,
appBar:appBar(标题:文本(“搜索结果”),
正文:_crawlerResultsBody(上下文),
底部导航栏:导航栏(上下文),
);
}
}
小部件_crawleresultsbody(构建上下文){
Future getResults()异步{
CrawlerHelper crawler=CrawlerHelper.instance;
CrawlerSearchState提供程序=
Provider.of(上下文,listen:false);
地图搜索结果=
wait crawler.searchNovels(provider.serachQuery);
返回搜索结果;
}
回归未来建设者(
future:getResults(),
生成器:(BuildContext上下文,
异步快照(快照){
if(snapshot.connectionState==connectionState.waiting)
返回中心(
子项:文本('获取结果'),
);
否则{
if(snapshot.hasError){
返回中心(子项:Text('Error fetching results');
}
/*if(snapshot.data.entries.length==0){
返回中心(子项:文本(“无结果”);
}*/
CrawlerSearchState提供程序=
Provider.of(上下文,listen:false);
provider.searchResults=snapshot.data;
返回crawlerResultsList(上下文);
}
});
}
Widget\u crawlerResultsList(BuildContext上下文){
CrawlerSearchState提供程序=
Provider.of(上下文,listen:false);
List searchResults=provider.searchResults.entries
.map((条目){
返回条目.value;
})
托利斯先生()
.展开((元素)=>元素)
.toList();
返回列表视图(
填充:常量边集。全部(7),
儿童:[
…搜索结果
.map((结果)=>_crawlerResultsListItem(上下文,结果))
托利斯先生()
],
);
}
小部件_crawleresultslistitem(构建上下文上下文,搜索结果){
读取器状态=
Provider.of(上下文,listen:false);
CrawlerSearchState CrawlerSearchState=
Provider.of(上下文,listen:false);
void onTap(){
crawlerSearchState.resultSelected=结果;
pushNamed(上下文,RouteCrawlerNovel.routeName);
}
回墨槽(
onTap:onTap,
子:容器(
填充:常量边集。全部(5),
边距:常数边集全部(7),
身高:120,
装饰:盒子装饰(
borderRadius:borderRadius.all(半径.圆形(5)),
颜色:主题.of(上下文).cardColor,
),
孩子:Flex(
方向:水平轴,
crossAxisAlignment:crossAxisAlignment.stretch,
儿童:[
灵活的(
弹性:0,
子:容器(
宽度:80,
装饰:盒子装饰(
borderRadius:borderRadius.all(半径.圆形(5)),
图像:装饰图像(
适合:BoxFit.cover,
图像:CachedNetworkImageProvider(
result.cover.toString(),
cacheManager:state.cacheManager,
),
),
),
)),
大小盒子(
宽度:15,
),
灵活的(
弹性:10,
子:列(
crossAxisAlignment:crossAxisAlignment.stretch,
mainAxisAlignment:mainAxisAlignment.spaceBetween,
儿童:[
灵活的(
弹性:10,
子:文本(
结果.title,
maxLines:3,
样式:TextStyle(
字体大小:
Theme.of(context.textTheme.bodyText1.fontSize*1.2),
),
),
灵活的(
弹性:0,
子:文本(
result.source.toString(),
textAlign:textAlign.end,
))
],
),
),
大小盒子(
宽度:5,
)
],
)),
);
}
控制台错误

import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:reader_app/helpers/crawler.dart';
import 'package:reader_app/models/source/search_result.dart';
import 'package:reader_app/models/state.dart';
import 'package:reader_app/routes/crawler_novel.dart';
import 'package:reader_app/widgets/navigation.dart';
import 'package:provider/provider.dart';

class RouteCrawlerResults extends StatefulWidget {
  static final String routeName = '/crawler/results';

  @override
  State<StatefulWidget> createState() => new RouteCrawlerResultsState();
}

class RouteCrawlerResultsState extends State<RouteCrawlerResults> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      resizeToAvoidBottomInset: false,
      appBar: AppBar(title: Text('Search Results')),
      body: _crawlerResultsBody(context),
      bottomNavigationBar: NavBar(context),
    );
  }
}

Widget _crawlerResultsBody(BuildContext context) {
  Future<Map<Uri, List<SearchResult>>> getResults() async {
    CrawlerHelper crawler = CrawlerHelper.instance;
    CrawlerSearchState provider =
        Provider.of<CrawlerSearchState>(context, listen: false);
    Map<Uri, List<SearchResult>> searchResults =
        await crawler.searchNovels(provider.serachQuery);
    return searchResults;
  }

  return FutureBuilder(
      future: getResults(),
      builder: (BuildContext context,
          AsyncSnapshot<Map<Uri, List<SearchResult>>> snapshot) {
        if (snapshot.connectionState == ConnectionState.waiting)
          return Center(
            child: Text('Fetching results.'),
          );
        else {
          if (snapshot.hasError) {
            return Center(child: Text('Error fetching results.'));
          }
          /*if (snapshot.data.entries.length == 0) {
            return Center(child: Text('No results.'));
          }*/
          CrawlerSearchState provider =
              Provider.of<CrawlerSearchState>(context, listen: false);
          provider.searchResults = snapshot.data;
          return _crawlerResultsList(context);
        }
      });
}

Widget _crawlerResultsList(BuildContext context) {
  CrawlerSearchState provider =
      Provider.of<CrawlerSearchState>(context, listen: false);

  List<SearchResult> searchResults = provider.searchResults.entries
      .map((entry) {
        return entry.value;
      })
      .toList()
      .expand((element) => element)
      .toList();

  return ListView(
    padding: const EdgeInsets.all(7),
    children: [
      ...searchResults
          .map((result) => _crawlerResultsListItem(context, result))
          .toList()
    ],
  );
}

Widget _crawlerResultsListItem(BuildContext context, SearchResult result) {
  ReaderState state =
      Provider.of<ReaderState>(context, listen: false);

  CrawlerSearchState crawlerSearchState =
      Provider.of<CrawlerSearchState>(context, listen: false);

  void onTap() {
    crawlerSearchState.resultSelected = result;
    Navigator.pushNamed(context, RouteCrawlerNovel.routeName);
  }

  return InkWell(
    onTap: onTap,
    child: Container(
        padding: const EdgeInsets.all(5),
        margin: const EdgeInsets.all(7),
        height: 120,
        decoration: BoxDecoration(
          borderRadius: BorderRadius.all(Radius.circular(5)),
          color: Theme.of(context).cardColor,
        ),
        child: Flex(
          direction: Axis.horizontal,
          crossAxisAlignment: CrossAxisAlignment.stretch,
          children: [
            Flexible(
                flex: 0,
                child: Container(
                  width: 80,
                  decoration: BoxDecoration(
                    borderRadius: BorderRadius.all(Radius.circular(5)),
                    image: DecorationImage(
                      fit: BoxFit.cover,
                      image: CachedNetworkImageProvider(
                        result.cover.toString(),
                        cacheManager: state .cacheManager,
                      ),
                    ),
                  ),
                )),
            SizedBox(
              width: 15,
            ),
            Flexible(
              flex: 10,
              child: Column(
                crossAxisAlignment: CrossAxisAlignment.stretch,
                mainAxisAlignment: MainAxisAlignment.spaceBetween,
                children: [
                  Flexible(
                    flex: 10,
                    child: Text(
                      result.title,
                      maxLines: 3,
                      style: TextStyle(
                          fontSize:
                              Theme.of(context).textTheme.bodyText1.fontSize * 1.2),
                    ),
                  ),
                  Flexible(
                      flex: 0,
                      child: Text(
                        result.source.toString(),
                        textAlign: TextAlign.end,
                      ))
                ],
              ),
            ),
            SizedBox(
              width: 5,
            )
          ],
        )),
  );
}
/E:/Archivo/Estudio/Git/reader_app/lib/routes/crawler_results.dart:52:29: Error: Property 'entries' cannot be accessed on 'Map<Uri, List<SearchResult>>?' because it is potentially null.
 - 'Map' is from 'dart:core'.
 - 'Uri' is from 'dart:core'.
 - 'List' is from 'dart:core'.
 - 'SearchResult' is from 'package:reader_app/models/source/search_result.dart' ('lib/models/source/search_result.dart').
Try accessing using ?. instead.
          if (snapshot.data.entries.length == 0) {
                            ^^^^^^^
/E:/Archivo/Estudio/Git/reader_app/lib/routes/crawler_results.dart:142:69: Error: Property 'fontSize' cannot be accessed on 'TextStyle?' because it is potentially null.
 - 'TextStyle' is from 'package:flutter/src/painting/text_style.dart' ('/C:/Android/flutter/packages/flutter/lib/src/painting/text_style.dart').
Try accessing using ?. instead.
                              Theme.of(context).textTheme.bodyText1.fontSize *
                                                                    ^^^^^^^^
/E:/Archivo/Estudio/Git/reader_app/lib/routes/crawler_results.dart:142:78: Error: Operator '*' cannot be called on 'double?' because it is potentially null.
                              Theme.of(context).textTheme.bodyText1.fontSize *
                                                                             ^


FAILURE: Build failed with an exception.

* Where:
Script 'C:\Android\flutter\packages\flutter_tools\gradle\flutter.gradle' line: 991

* What went wrong:
Execution failed for task ':app:compileFlutterBuildDebug'.
> Process 'command 'C:\Android\flutter\bin\flutter.bat'' finished with non-zero exit value 1

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 11s
Exception: Gradle task assembleDebug failed with exit code 1
/E:/Archivo/Estudio/Git/reader\u app/lib/routes/crawler\u results。dart:52:29:错误:无法在“Map”上访问属性“entries”,因为它可能为空。
-“地图”来自“飞镖:核心”。
-“Uri”来自“dart:core”。
-“列表”来自“dart:core”。
-“SearchResult”来自“package:reader\u app/models/source/search\u result.dart”(“lib/models/source/search\u result.dart”)。
尝试使用?访问?。相反
if(snapshot.data.entries.length==0){
^^^^^^^
/E:/Archivo/Estudio/Git/reader_app/lib/routes/crawler_results。dart:142:69:错误:无法在“TextStyle”上访问属性“fontSize”,因为它可能是
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:reader_app/helpers/crawler.dart';
import 'file:///E:/Archivo/Estudio/Git/reader_app/lib/routes/crawler_results.dart';
import 'package:reader_app/models/state.dart';
import 'package:reader_app/widgets/navigation.dart';
import 'package:provider/provider.dart';