Flutter hive: cannot generate Adapter files

1,269

Solution 1

Run this command :

flutter packages pub run build_runner build

But before that, you will have to import the generator.

Example : If your file name is project_database.dart, then in that file :

Import,

import 'package:hive/hive.dart';
part 'project_database.g.dart'; //this will show an error initially but if
 // you run the above command, it will generate the generator file

Solution 2

I faced the same issue but I was missing hive_generator: ^1.1.1. I didn't find it in the original Docs.

Special thanks to @Denny Mueller's comment

Share:
1,269
ThommyB
Author by

ThommyB

Updated on January 01, 2023

Comments

  • ThommyB
    ThommyB over 1 year

    I have a model like so:

    import 'package:uuid/uuid.dart';
    import 'package:hive/hive.dart';
    
    part 'config_item.g.dart';
    
    @HiveType()
    class ConfigItem {
      @HiveField(0)
      String _id; // this can be a uuid or a MongoDB ObjectID
      @HiveField(1)
      final String deviceName;
    ....
    }
    

    I like to generate the Adapter file but it does not want to do it! When I call flutter packages pub run build_runner build --delete-conflicting-outputs I get the following output:

    flutter packages pub run build_runner build  --delete-conflicting-outputs                main  ✭ ✈
    [INFO] Generating build script...
    [INFO] Generating build script completed, took 399ms
    
    [SEVERE] Nothing can be built, yet a build was requested.
    [INFO] Initializing inputs
    [INFO] Reading cached asset graph...
    [INFO] Reading cached asset graph completed, took 45ms
    
    [INFO] Checking for updates since last build...
    [INFO] Checking for updates since last build completed, took 399ms
    
    [INFO] Running build...
    [INFO] Running build completed, took 3ms
    
    [INFO] Caching finalized dependency graph...
    [INFO] Caching finalized dependency graph completed, took 35ms
    
    [INFO] Succeeded after 53ms with 0 outputs (0 actions)
    

    In my pubspec.yaml I have:

    environment:
      sdk: ">=2.12.0 <3.0.0"
    
    dependencies:
      flutter:
        sdk: flutter
    
    
      # The following adds the Cupertino Icons font to your application.
      # Use with the CupertinoIcons class for iOS style icons.
      cupertino_icons: ^1.0.2
      bottom_navy_bar: ^6.0.0
      get_it: ^7.2.0
      get_it_mixin: ^3.1.3
      servicestack: ^2.0.0
      font_awesome_flutter: ^9.1.0
      hive: ^2.0.4
      hive_flutter: ^1.1.0
      path_provider: ^2.0.3
      uuid: ^3.0.4
    
    dev_dependencies:
      flutter_test:
        sdk: flutter
      build_runner:
    

    I tried all sort of things like

    • Delete .dart_tool folder
    • Adding *.g.dart to .gitignore
    • flutter clean
    • and a lot more I found when searching the net.

    But nothing helps! Any idea what is missing?

    I am using the latest (stable) versions of flutter, dart SDK and AndroidStudio.

    • Denny Mueller
      Denny Mueller over 2 years
      I think you are missing hive_generator: ^1.1.1 in the dev dependencies.
    • ThommyB
      ThommyB over 2 years
      That was the solution regarding the build. And I had to assign a typeId in the @HiveType annotation like so: @HiveType(typeId : 1). Thanks a lot for the hint.