Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HiveError. Strange database crash on flutter. #240

Closed
remboshelby opened this issue Feb 24, 2020 · 2 comments
Closed

HiveError. Strange database crash on flutter. #240

remboshelby opened this issue Feb 24, 2020 · 2 comments
Assignees
Labels
problem An unconfirmed bug.

Comments

@remboshelby
Copy link

remboshelby commented Feb 24, 2020

I cant understand why it's happned. It happens time by time.

Code sample

class DbWidget extends StatefulWidget {
  const DbWidget(
      {Key key,
      @required this.boxNames,
      @required this.child,
      this.needToClean = false})
      : super(key: key);

  final List<String> boxNames;
  final Widget child;
  final bool needToClean;
  @override
  _DbWidgetState createState() => _DbWidgetState();
}

class _DbWidgetState extends State<DbWidget> {
  @override
  void dispose() {
    Hive.close();
    super.dispose();
  }

  Future _initDb() async {
    final appDocumentDir =
        await getApplicationDocumentsDirectory();
    Hive.init(appDocumentDir.path);
    await Future.wait(widget.boxNames.map(Hive.openBox).toList());
    if (widget.needToClean) {
      for (var boxName in widget.boxNames) {
        Hive.box(boxName).clear();
      }
    }
  }

  @override
  Widget build(BuildContext context) {
    return FutureBuilder(
        future: _initDb(),
        builder: (context, snapshot) {
          if (snapshot.connectionState == ConnectionState.done) {
            if (snapshot.hasError) {
              return Material(
                color: Colors.white,
                child: Text(snapshot.error.toString()),
              );
            }
            return widget.child;
          } else {
            return Container(
              color: Colors.white,
            );
          }
        });
  }
}

bag track

I/flutter (12845): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
I/flutter (12845): The following assertion was thrown building Text("HiveError: This should not happen. Please open an
I/flutter (12845): issue on GitHub.", dependencies: [DefaultTextStyle]):
I/flutter (12845): No Directionality widget found.
I/flutter (12845): RichText widgets require a Directionality widget ancestor.
I/flutter (12845): The specific widget that could not find a Directionality ancestor was:
I/flutter (12845):   RichText
I/flutter (12845): The ownership chain for the affected widget is: "RichText ← Text ← DefaultTextStyle ←
I/flutter (12845):   AnimatedDefaultTextStyle ← _InkFeatures-[GlobalKey#934ae ink renderer] ←
I/flutter (12845):   NotificationListener<LayoutChangedNotification> ← PhysicalModel ← AnimatedPhysicalModel ← Material
I/flutter (12845):   ← FutureBuilder<dynamic> ← ⋯"
I/flutter (12845): Typically, the Directionality widget is introduced by the MaterialApp or WidgetsApp widget at the
I/flutter (12845): top of your application widget tree. It determines the ambient reading direction and is used, for
I/flutter (12845): example, to determine how to lay out text, how to interpret "start" and "end" values, and to resolve
I/flutter (12845): EdgeInsetsDirectional, AlignmentDirectional, and other *Directional objects.
I/flutter (12845): 
I/flutter (12845): The relevant error-causing widget was:
I/flutter (12845):   Text file:///F:/most_mobile/lib/config/open_boxes.dart:49:24
I/flutter (12845): 
I/flutter (12845): When the exception was thrown, this was the stack:
I/flutter (12845): #0      debugCheckHasDirectionality.<anonymous closure> (package:flutter/src/widgets/debug.dart:243:7)
I/flutter (12845): #1      debugCheckHasDirectionality (package:flutter/src/widgets/debug.dart:259:4)
I/flutter (12845): #2      RichText.createRenderObject (package:flutter/src/widgets/basic.dart:5125:37)
I/flutter (12845): #3      RenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5052:28)
I/flutter (12845): #4      MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5547:11)
I/flutter (12845): #5      Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (12845): #6      Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (12845): #7      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (12845): #8      Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (12845): #9      ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (12845): #10     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (12845): #11     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (12845): #12     Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (12845): #13     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (12845): #14     Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (12845): #15     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (12845): #16     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (12845): #17     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (12845): #18     Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (12845): #19     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (12845): #20     Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (12845): #21     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (12845): #22     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)
I/flutter (12845): #23     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (12845): #24     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (12845): #25     Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (12845): #26     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter (12845): #27     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (12845): #28     Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (12845): #29     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (12845): #30     Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (12845): #31     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (12845): #32     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (12845): #33     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (12845): #34     Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (12845): #35     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter (12845): #36     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (12845): #37     Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (12845): #38     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (12845): #39     Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (12845): #40     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (12845): #41     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)
I/flutter (12845): #42     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (12845): #43     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (12845): #44     Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (12845): #45     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (12845): #46     Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (12845): #47     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter (12845): #48     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)
I/flutter (12845): #49     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter (12845): #50     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter (12845): #51     Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter (12845): #52     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (12845): #53     Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (12845): #54     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2432:33)
I/flutter (12845): #55     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:773:20)
I/flutter (12845): #56     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:283:5)
I/flutter (12845): #57     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1102:15)
I/flutter (12845): #58     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1041:9)
I/flutter (12845): #59     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:957:5)
I/flutter (12845): #63     _invoke (dart:ui/hooks.dart:259:10)
I/flutter (12845): #64     _drawFrame (dart:ui/hooks.dart:217:3)
I/flutter (12845): (elided 3 frames from package dart:async)

Version

  • Platform: Android
  • Hive: ^1.4.0+1
  • Hive_flutter: ^0.3.0+1
@remboshelby remboshelby added the problem An unconfirmed bug. label Feb 24, 2020
@remboshelby remboshelby changed the title Hive. Stange database crash. HiveError. Strange database crash. Feb 24, 2020
@remboshelby remboshelby changed the title HiveError. Strange database crash. HiveError. Strange database crash on flutter. Feb 24, 2020
@simc
Copy link
Member

simc commented Feb 24, 2020

Can you reproduce this problem consistently?

@themisir
Copy link
Contributor

Duplicate of #263

@themisir themisir marked this as a duplicate of #263 Aug 22, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
problem An unconfirmed bug.
Projects
None yet
Development

No branches or pull requests

3 participants