Open jayaike opened 4 years ago
Sometimes I get this error
I/flutter ( 9732): ══╡ EXCEPTION CAUGHT BY IMAGE RESOURCE SERVICE ╞════════════════════════════════════════════════════
I/flutter ( 9732): The following assertion was thrown by an image listener:
I/flutter ( 9732): setState() called after dispose(): _PDFPageState#f9d49(lifecycle state: defunct, not mounted)
I/flutter ( 9732): This error happens if you call setState() on a State object for a widget that no longer appears in
I/flutter ( 9732): the widget tree (e.g., whose parent widget no longer includes the widget in its build). This error
I/flutter ( 9732): can occur when code calls setState() from a timer or an animation callback.
I/flutter ( 9732): The preferred solution is to cancel the timer or stop listening to the animation in the dispose()
I/flutter ( 9732): callback. Another solution is to check the "mounted" property of this object before calling
I/flutter ( 9732): setState() to ensure the object is still in the tree.
I/flutter ( 9732): This error might indicate a memory leak if setState() is being called because another object is
I/flutter ( 9732): retaining a reference to this State object after it has been removed from the tree. To avoid memory
I/flutter ( 9732): leaks, consider breaking the reference to this object during dispose().
I/flutter ( 9732):
I/flutter ( 9732): When the exception was thrown, this was the stack:
I/flutter ( 9732): #0 State.setState.<anonymous closure> (package:flutter/src/widgets/framework.dart:1112:9)
I/flutter ( 9732): #1 State.setState (package:flutter/src/widgets/framework.dart:1147:6)
I/flutter ( 9732): #2 _PDFPageState._repaint.<anonymous closure> (package:flutter_plugin_pdf_viewer/src/page.dart:37:28)
I/flutter ( 9732): #3 ImageStreamCompleter.setImage (package:flutter/src/painting/image_stream.dart:407:18)
I/flutter ( 9732): #4 MultiFrameImageStreamCompleter._emitFrame (package:flutter/src/painting/image_stream.dart:709:5)
I/flutter ( 9732): #5 MultiFrameImageStreamCompleter._decodeNextFrameAndSchedule (package:flutter/src/painting/image_stream.dart:694:7)
I/flutter ( 9732): <asynchronous suspension>
I/flutter ( 9732): #6 MultiFrameImageStreamCompleter._handleCodecReady (package:flutter/src/painting/image_stream.dart:644:7)
I/flutter ( 9732): #15 FileImage._loadAsync (package:flutter/src/painting/image_provider.dart)
I/flutter ( 9732): <asynchronous suspension>
I/flutter ( 9732): #16 FileImage.load (package:flutter/src/painting/image_provider.dart:638:14)
I/flutter ( 9732): #17 ImageProvider.resolve.<anonymous closure>.<anonymous closure>.<anonymous closure> (package:flutter/src/painting/image_provider.dart:327:17)
I/flutter ( 9732): #18 ImageCache.putIfAbsent (package:flutter/src/painting/image_cache.dart:160:22)
I/flutter ( 9732): #19 ImageProvider.resolve.<anonymous closure>.<anonymous closure> (package:flutter/src/painting/image_provider.dart:325:84)
I/flutter ( 9732): #20 SynchronousFuture.then (package:flutter/src/foundation/synchronous_future.dart:38:29)
I/flutter ( 9732): #21 ImageProvider.resolve.<anonymous closure> (package:flutter/src/painting/image_provider.dart:323:11)
I/flutter ( 9732): #25 ImageProvider.resolve (package:flutter/src/painting/image_provider.dart:315:16)
I/flutter ( 9732): #26 _PDFPageState._repaint (package:flutter_plugin_pdf_viewer/src/page.dart:35:31)
I/flutter ( 9732): #27 _PDFPageState.didChangeDependencies (package:flutter_plugin_pdf_viewer/src/page.dart:22:5)
I/flutter ( 9732): #28 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4376:12)
I/flutter ( 9732): #29 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter ( 9732): #30 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 9732): #31 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 9732): #32 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5219:32)
I/flutter ( 9732): #33 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5561:17)
I/flutter ( 9732): #34 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter ( 9732): #35 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 9732): #36 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 9732): #37 StatelessElement.update (package:flutter/src/widgets/framework.dart:4298:5)
I/flutter ( 9732): #38 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter ( 9732): #39 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 9732): #40 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 9732): #41 ProxyElement.update (package:flutter/src/widgets/framework.dart:4557:5)
I/flutter ( 9732): #42 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter ( 9732): #43 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 9732): #44 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 9732): #45 ProxyElement.update (package:flutter/src/widgets/framework.dart:4557:5)
I/flutter ( 9732): #46 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter ( 9732): #47 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5161:32)
I/flutter ( 9732): #48 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5561:17)
I/flutter ( 9732): #49 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter ( 9732): #50 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 9732): #51 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 9732): #52 StatefulElement.update (package:flutter/src/widgets/framework.dart:4413:5)
I/flutter ( 9732): #53 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter ( 9732): #54 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 9732): #55 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 9732): #56 ProxyElement.update (package:flutter/src/widgets/framework.dart:4557:5)
I/flutter ( 9732): #57 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter ( 9732): #58 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 9732): #59 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 9732): #60 StatefulElement.update (package:flutter/src/widgets/framework.dart:4413:5)
I/flutter ( 9732): #61 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter ( 9732): #62 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5452:14)
I/flutter ( 9732): #63 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter ( 9732): #64 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 9732): #65 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 9732): #66 StatelessElement.update (package:flutter/src/widgets/framework.dart:4298:5)
I/flutter ( 9732): #67 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter ( 9732): #68 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5452:14)
I/flutter ( 9732): #69 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter ( 9732): #70 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 9732): #71 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 9732): #72 StatefulElement.update (package:flutter/src/widgets/framework.dart:4413:5)
I/flutter ( 9732): #73 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter ( 9732): #74 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 9732): #75 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 9732): #76 StatefulElement.update (package:flutter/src/widgets/framework.dart:4413:5)
I/flutter ( 9732): #77 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter ( 9732): #78 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 9732): #79 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 9732): #80 ProxyElement.update (package:flutter/src/widgets/framework.dart:4557:5)
I/flutter ( 9732): #81 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter ( 9732): #82 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 9732): #83 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 9732): #84 ProxyElement.update (package:flutter/src/widgets/framework.dart:4557:5)
I/flutter ( 9732): #85 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter ( 9732): #86 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 9732): #87 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 9732): #88 StatefulElement.update (package:flutter/src/widgets/framework.dart:4413:5)
I/flutter ( 9732): #89 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter ( 9732): #90 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 9732): #91 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 9732): #92 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2432:33)
I/flutter ( 9732): #93 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:773:20)
I/flutter ( 9732): #94 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:283:5)
I/flutter ( 9732): #95 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1102:15)
I/flutter ( 9732): #96 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1041:9)
I/flutter ( 9732): #97 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:957:5)
I/flutter ( 9732): #101 _invoke (dart:ui/hooks.dart:259:10)
I/flutter ( 9732): #102 _drawFrame (dart:ui/hooks.dart:217:3)
I/flutter ( 9732): (elided 14 frames from package dart:async and package dart:async-patch)
I/flutter ( 9732): ════════════════════════════════════════════════════════════════════════════════════════════════════
I think this is by design and setState is used for the same reason that you want to rebuild the widget. It is not issue with the pdf viewer, but flutter.
Whenever I call setState in the widget, the PDF Viewer rebuilds causing it to load all over again. How can I prevent this?