我真的是新学的代码颤振应用程序(Dart),我正在遵循一个基本的过程,以建立一个简单的用户界面一步一步。一切都很好,直到我需要创建一个图像滑块(在定制的appBar中),并且当我创建一个返回一个appBar变量(每个图像的容器)的CardImage类时,Android建议在类中插入一个抛出UnimplementedError(),最后我运行了我的应用程序,它崩溃了,显示了控制台日志中捕获的一个异常。
做了一些谷歌搜索之后,我试图解决这个问题,我不明白为什么当我在throw UnimplementedError()类中注释CardImage时错误消失了,为什么Android建议插入这段代码?有没有更好的解决办法?我会感谢你的帮助。
我的班级:
import 'package:flutter/material.dart';
class CardImage extends StatelessWidget {
final String imagePath;
CardImage(this.imagePath, {Key? key}) : super(key: key) {
// TODO: implement
throw UnimplementedError();
}
@override
Widget build(BuildContext context) {
final card = Container(
height: 350.0,
width: 250.0,
margin: const EdgeInsets.only(
top: 80.0,
left: 20.0
),
decoration: BoxDecoration(
image: DecorationImage(
fit: BoxFit.cover,
image: AssetImage(imagePath)
),
borderRadius: const BorderRadius.all(Radius.circular(10.0)),
shape: BoxShape.rectangle,
boxShadow: const <BoxShadow>[
BoxShadow(
color: Colors.black38,
// Nivel de degradado
blurRadius: 15.0,
// Posición de la sombra (x, y)
offset: Offset(0.0, 7.0)
)
]
),
);
return card;
}
}控制台日志:
Launching lib\main.dart on sdk gphone x86 in debug mode...
Running Gradle task 'assembleDebug'...
√ Built build\app\outputs\flutter-apk\app-debug.apk.
Installing build\app\outputs\flutter-apk\app.apk...
Debug service listening on ws://127.0.0.1:63533/KSRdMP8cgi0=/ws
Syncing files to device sdk gphone x86...
======== Exception caught by widgets library =======================================================
The following UnimplementedError was thrown building CardImageList(dirty):
UnimplementedError
The relevant error-causing widget was:
CardImageList CardImageList:file:///C:/Users/joh4n4lex4nder/Documents/Platzi/Cursos/Flutter/Avanzado/lib/header_app.dart:13:15
When the exception was thrown, this was the stack:
#0 new CardImage (package:trip_app/card_image.dart:8:5)
#1 CardImageList.build (package:trip_app/card_image_list.dart:18:11)
#2 StatelessElement.build (package:flutter/src/widgets/framework.dart:4827:28)
#3 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4754:15)
#4 Element.rebuild (package:flutter/src/widgets/framework.dart:4477:5)
#5 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4735:5)
#6 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4729:5)
#7 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3790:14)
#8 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6422:36)
#9 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6433:32)
... Normal element mounting (7 frames)
#16 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3790:14)
#17 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6422:36)
#18 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6433:32)
... Normal element mounting (19 frames)
#37 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3790:14)
#38 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6422:36)
#39 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6433:32)
... Normal element mounting (255 frames)
#294 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3790:14)
#295 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6422:36)
#296 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6433:32)
... Normal element mounting (377 frames)
#673 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3790:14)
#674 Element.updateChild (package:flutter/src/widgets/framework.dart:3540:18)
#675 RenderObjectToWidgetElement._rebuild (package:flutter/src/widgets/binding.dart:1198:16)
#676 RenderObjectToWidgetElement.mount (package:flutter/src/widgets/binding.dart:1167:5)
#677 RenderObjectToWidgetAdapter.attachToRenderTree.<anonymous closure> (package:flutter/src/widgets/binding.dart:1112:18)
#678 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2600:19)
#679 RenderObjectToWidgetAdapter.attachToRenderTree (package:flutter/src/widgets/binding.dart:1111:13)
#680 WidgetsBinding.attachRootWidget (package:flutter/src/widgets/binding.dart:944:7)
#681 WidgetsBinding.scheduleAttachRootWidget.<anonymous closure> (package:flutter/src/widgets/binding.dart:924:7)
(elided 11 frames from class _RawReceivePortImpl, class _Timer, dart:async, and dart:async-patch)
====================================================================================================
I/OpenGLRenderer( 1507): Davey! duration=725ms; Flags=0, IntendedVsync=159868971593464, Vsync=159868971593464, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=159868980901800, AnimationStart=159868980931200, PerformTraversalsStart=159868980972100, DrawStart=159868982275600, SyncQueued=159869022993700, SyncStart=159869028916400, IssueDrawCommandsStart=159869072195400, SwapBuffers=159869684501800, FrameCompleted=159869703161500, DequeueBufferDuration=7169100, QueueBufferDuration=715000, GpuCompleted=72904454231491230, 发布于 2022-04-04 02:19:34
“此错误由未完成的代码引发,该代码尚未实现所需的所有功能。
如果类不打算实现该特性,则应该抛出一个UnsupportedError。此错误仅供开发期间使用。“
如果你有更多的兴趣到这里去,https://api.flutter.dev/flutter/dart-core/UnimplementedError-class.html
我相信有些人会使用它作为临时占位符,这样当他们到达代码的那一部分时,你会得到一个错误,提醒他们他们仍然必须完成/实现代码的那一部分。
希望这能有所帮助
发布于 2022-04-03 20:58:59
在您的代码(第6行)中,我看到它显式地抛出了前面提到的错误,请您删除这一行,然后再试一次。
发布于 2022-04-04 07:06:55
请删除CardImage构造函数中的“抛出CardImage()”,例如:
const CardImage(this.imagePath, {Key? key}) : super(key: key);在某些语言中,它充当REMIDER,它防止开发人员忘记实现函数,您可以在kotlin等语言中找到类似的情况。
https://stackoverflow.com/questions/71729749
复制相似问题