【发布时间】:2018-12-01 18:51:35
【问题描述】:
我最近一直在使用一些颤振插件。许多都完美运行,但我几次偶然发现令人沮丧的错误,通常导致放弃插件。
这是我得到的最后一个,schedule_notifications:
E/flutter (24758): [ERROR:topaz/lib/tonic/logging/dart_error.cc(16)] Unhandled exception:
E/flutter (24758): MissingPluginException(No implementation found for method getIconResourceId on channel schedule_notifications_app)
E/flutter (24758): #0 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:278:7)
E/flutter (24758): <asynchronous suspension>
E/flutter (24758): #1 _MyAppState._getIconResourceId (<my path>/sandbox/lib/main.dart:67:40)
E/flutter (24758): <asynchronous suspension>
E/flutter (24758): #2 _MyAppState.initState (<my path>/sandbox/lib/main.dart:24:7)
E/flutter (24758): #3 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3751:58)
E/flutter (24758): #4 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3617:5)
E/flutter (24758): #5 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2907:14)
E/flutter (24758): #6 Element.updateChild (package:flutter/src/widgets/framework.dart:2710:12)
E/flutter (24758): #7 RenderObjectToWidgetElement._rebuild (package:flutter/src/widgets/binding.dart:857:16)
E/flutter (24758): #8 RenderObjectToWidgetElement.mount (package:flutter/src/widgets/binding.dart:828:5)
E/flutter (24758): #9 RenderObjectToWidgetAdapter.attachToRenderTree.<anonymous closure> (package:flutter/src/widgets/binding.dart:774:17)
E/flutter (24758): #10 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2222:19)
E/flutter (24758): #11 RenderObjectToWidgetAdapter.attachToRenderTree (package:flutter/src/widgets/binding.dart:773:13)
E/flutter (24758): #12 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&RendererBinding&WidgetsBinding.attachRootWidget (package:flutter/src/widgets/binding.dart:662:7)
E/flutter (24758): #13 runApp (package:flutter/src/widgets/binding.dart:704:7)
E/flutter (24758): #14 main (<my path>/sandbox/lib/main.dart:8:16)
E/flutter (24758): #15 _startIsolate.<anonymous closure> (dart:isolate/runtime/libisolate_patch.dart:279:19)
E/flutter (24758): #16 _RawReceivePortImpl._handleMessage (dart:isolate/runtime/libisolate_patch.dart:165:12)
D/libGLESv2(24758): DTS_GLAPI : DTS is not allowed for Package : <my package>
D/libGLESv1(24758): DTS_GLAPI : DTS is not allowed for Package : <my package>
D/ViewRootImpl(24758): ViewPostImeInputStage processPointer 0
D/ViewRootImpl(24758): ViewPostImeInputStage processPointer 1
在 SO 和 GitHub 上有很多类似问题的示例(请参阅我的帖子末尾),但唯一建议解决它们的是“使用 flutter clean、flutter upgrade、 flutter packages get 然后是 flutter run"。 有时可能就足够了,但并非总是如此 - 在我的特殊情况下,我仍然会遇到完全相同的错误。
值得注意的是,如果我克隆插件的整个 GitHub 存储库并从该目录中运行示例,它确实运行良好。但是如果我尝试重新创建示例项目,它不会,所以我认为我错过了一些东西,但是什么?
这是我重新创建示例所遵循的步骤:
在 Android Studio 中新建一个 Flutter 项目
添加依赖
schedule_notifications: ^0.1.8 in pubspec.yaml在 Android Studio 中点击 Flutter 命令
Packages get和Packages upgrade在Android Studio出现
Get packages时点击弹出窗口将https://github.com/serralvo/schedule_notifications/blob/master/example/lib/main.dart中的代码粘贴到我的
main.dart文件中将
import 'package:schedule_notifications_example/time_picker.dart';行更改为import 'time_picker.dart';以解决我从Android Studio 得到的错误在
main.dart旁边创建一个文件time_picker.dart并将https://github.com/serralvo/schedule_notifications/blob/master/example/lib/time_picker.dart 中的代码粘贴到其中在Android Studio中执行项目,出现上述错误
启动 Flutter 控制台并进入我的项目目录
在控制台执行命令
flutter clean、flutter upgrade、flutter packages get在控制台执行命令
flutter run依旧报同样的错误
那么,到底发生了什么?对于某些开发人员或某些项目,某些插件会产生这种行为吗?我做错了什么?
类似问题的示例:
【问题讨论】:
标签: flutter