Android assembleDebug无法指示一个文件上的错误,即使在修复了所述错误之后也是如此
我当前的flatter项目在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
运行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';