android – Flutter auto_route failing to generate routes after v6 improve

0
25
android – Flutter auto_route failing to generate routes after v6 improve


I am engaged on a legacy undertaking that I took over. It makes use of auto_route and auto_route_generator to deal with routes. It was beforehand on model 5.x.x and I am am trying to replace it to model 6.0.0 as a result of the app refuses to construct for android with the present model.

After updating each dependancies and utilizing the v6 migration instrument in Android Studio, I ran flutter pub run build_runner construct --delete-conflicting-outputs and took a have a look at my router.dart and router.gr.dart. I first seen that I had an error for every route in router.dart that appears much like this: Undefined identify 'LoadingRoute'. Strive correcting the identify to at least one that's outlined, or defining the identify. Once I have a look at router.gr.dart I seen that not one of the routes had been generated. I discovered this submit which looks like the same problem however I wasn’t in a position to remedy it based mostly on the replies. Any assist can be a lot appreciated!

Router.gr.dart:

// GENERATED CODE - DO NOT MODIFY BY HAND

// **************************************************************************
// AutoRouterGenerator
// **************************************************************************

// ignore_for_file: kind=lint
// protection:ignore-file

// ignore_for_file: no_leading_underscores_for_library_prefixes
import 'package deal:auto_route/auto_route.dart' as _i1;
import 'package deal:flutter/materials.dart' as _i2;

summary class $AppRouter extends _i1.RootStackRouter {
  $AppRouter([_i2.GlobalKey<_i2.NavigatorState>? navigatorKey])
      : tremendous(navigatorKey);

  @override
  last Map pagesMap = {};
}

`Router.dart:

[all of my imports]

@AutoRouterConfig(
replaceInRouteName: 'Web page,Route',
)
class AppRouter extends $AppRouter {
@override
RouteType get defaultRouteType => RouteType.materials();
@override
last Listing routes = [
CustomRoute(path: "https://stackoverflow.com/", page: LoadingRoute.page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
CustomRoute(transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600, page: MainRoute.page, children: [
CustomRoute(path: '', page: HomeRoute.page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
CustomRoute(page: SettingsRoute.page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
CustomRoute(page: AccountPhotoRoute.page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
CustomRoute(page: CourseHistoryMasterDetailRoute.page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
CustomRoute(page: CourseHistoryDetailRoute.page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
CustomRoute(page: ClinicalPlacementHistoryMasterDetailRoute.page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
CustomRoute(page: ClinicalPlacementHistoryDetailRoute.page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
CustomRoute(page: EducationMasterDetailRoute.page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
CustomRoute(page: EducationDetailRoute.page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
CustomRoute(page: TimesheetsMasterDetailRoute.page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
CustomRoute(page: TimesheetsDetailRoute.page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
CustomRoute(page: ContinuingEducationMasterDetailRoute.page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
CustomRoute(page: ContinuingEducationDetailRoute.page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
CustomRoute(page: WorkHistoryMasterDetailRoute.page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
CustomRoute(page: WorkHistoryDetailRoute.page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
CustomRoute(page: CPRCertificationsMasterDetailRoute.page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
CustomRoute(page: CPRCertificationsDetailRoute.page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
CustomRoute(page: ProfessionalCertificationsMasterDetailRoute.page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
CustomRoute(page: ProfessionalCertificationsDetailRoute.page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
CustomRoute(page: ExamsMasterDetailRoute.page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
CustomRoute(page: ExamsDetailRoute.page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
CustomRoute(page: StateLicensesMasterDetailRoute.page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
CustomRoute(page: StateLicensesDetailRoute.page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
CustomRoute(page: MedicalRecordsMasterDetailRoute.page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
CustomRoute(page: MedicalRecordsDetailRoute.page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
CustomRoute(page: ClinicalDocumentsMasterDetailRoute.page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
CustomRoute(page: ClinicalDocumentsDetailRoute.page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
CustomRoute(page: ReferencesMasterDetailRoute.page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
CustomRoute(page: ReferencesDetailRoute.page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
CustomRoute(page: PersonalRoute.page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
CustomRoute(page: PositionSpecialtiesRoute.page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
CustomRoute(page: AccountRoute.page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
CustomRoute(page: LoginAndSecurityRoute.page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
AutoRoute(page: DocumentViewRoute.page, fullscreenDialog: true),
], guards: [
AuthGuard
]),
CustomRoute(web page: LoginRoute.web page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
CustomRoute(web page: ForgotPasswordRoute.web page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
RedirectRoute(path: '*', redirectTo: "https://stackoverflow.com/"),
CustomRoute(web page: EnterNewPasswordRoute.web page, transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
RedirectRoute(path: '*', redirectTo: "https://stackoverflow.com/"),
CustomRoute(web page: ForcePasswordResetRoute.web page, path: 'force-password-reset', transitionsBuilder: CustomTransitionsBuilders.sharedAxisTrans, durationInMilliseconds: 1200, reverseDurationInMilliseconds: 600),
RedirectRoute(path: '*', redirectTo: "https://stackoverflow.com/"),
];
}

And right here is an instance of one of many pages:

[all of my imports]

@RoutePage()
class LoadingPage extends StatefulWidget {
  @override
  _LoadingPageState createState() => _LoadingPageState();
}

class _LoadingPageState extends State with SingleTickerProviderStateMixin {
  bool animationComplete = false;
  OAuthToken? authToken;
  late AnimationController _controller;

  @override
  void initState() {
    tremendous.initState();

    _controller = AnimationController(length: const Length(milliseconds: 600), vsync: this);

    _controller.animateTo(1.0);

    loadAnimation();

    setup();
  }

  @override
  void dispose() {
    _controller.dispose();
    logoController?.isActiveChanged.removeListener(animationActive);
    tremendous.dispose();
  }

  Future loadAnimation() async {
    var information = await rootBundle.load('property/rive/emblem.riv');
    // Load the RiveFile from the binary information.
    last file = Rive.RiveFile.import(information);
    // The artboard is the basis of the animation and will get drawn within the
    // Rive widget.
    last artboard = file.mainArtboard;
    // Add a controller to play again a recognized animation on the primary/default
    // artboard.We retailer a reference to it so we are able to toggle playback.
    logoController = Rive.SimpleAnimation('emblem');

    logoController!.isActiveChanged.addListener(animationActive);

    artboard.addController(logoController!);
    setState(() => logoArtboard = artboard);
  }

  void animationActive() {
    if (logoController!.isActive) {
      WidgetsBinding.occasion.addPostFrameCallback((_) {
        setState(() {
          animationComplete = false;
        });
      });
    } else {
      WidgetsBinding.occasion.addPostFrameCallback((_) {
        setState(() {
          animationComplete = true;
        });
      });
    }
  }

  Future setup() async {
    last appState = Supplier.of(context, hear: false);
    authenticadedDio.interceptors.add(BearerInterceptor(oauth));

    attempt {
      await appState.loadPreferences(context);
    } catch (e) {
      AutoRouter.of(context).exchange(LoginRoute());
    }

    attempt {
      authToken = await oauth.refreshAccessToken();

      if (authToken != null && authToken!.accessToken!.isNotEmpty) {
        appState.consumer = await UserService.get();
        appState.subcontractors = await SubcontractorService.getAll();
      }

      navigate();
    } catch (e) {
      if (e is DioError) {
        appState.signOut(context);
      } else {
        FlushbarHelper.createError(message: e.toString()).present(mainContext!);
      }
    }
  }

  void delayNavigation() {}

  void navigate() {
    if (!animationComplete) {
      Future.delayed(const Length(milliseconds: 100)).then((v) {
        navigate();
      });

      return;
    }

    if (authToken != null && authToken!.accessToken!.isNotEmpty) {
      AutoRouter.of(context).exchange(MainRoute());
    } else {
      AutoRouter.of(context).exchange(LoginRoute());
    }
  }

  @override
  Widget construct(BuildContext context) {
    last darkColorTween = ColorTween(
      start: Shade(0xff2a225c),
      finish: Shade(0xff2a225c),
    ).animate(
      CurvedAnimation(
        curve: Interval(
          0.2,
          0.9,
          curve: Curves.ease,
        ),
        father or mother: _controller,
      ),
    );

    last lightColorTween = ColorTween(
      start: Shade(0xff2a225c),
      finish: Shade(0xff3d6f72),
    ).animate(
      CurvedAnimation(
        curve: Interval(
          0.2,
          0.9,
          curve: Curves.ease,
        ),
        father or mother: _controller,
      ),
    );

    last opacityAnimation = Tween(
      start: 0.0,
      finish: 1.0,
    ).animate(
      CurvedAnimation(
        curve: Interval(
          0.0,
          0.4,
          curve: Curves.ease,
        ),
        father or mother: _controller,
      ),
    );

    return Container(
      coloration: Shade(0xff2a225c),
      youngster: AnimatedBuilder(
          animation: _controller,
          builder: (context, youngster) {
            return Opacity(
                opacity: opacityAnimation.worth,
                youngster: Container(
                    ornament: BoxDecoration(
                        gradient: LinearGradient(
                      start: Alignment.centerLeft,
                      finish: Alignment.bottomRight,
                      colours: [
                        darkColorTween.value!,
                        lightColorTween.value!,
                      ],
                      // stops: [0, animation.value]
                    )),
                    youngster: Middle(
                        youngster: Padding(
                      padding: EdgeInsets.solely(left: 40, high: 20, proper: 40, backside: 20),
                      youngster: SizedBox(
                        width: (SizerUtil.deviceType == DeviceType.pill) ? 50.w : double.infinity,
                        youngster: Column(
                          mainAxisSize: MainAxisSize.min,
                          kids: [
                            Hero(
                              tag: 'logo',
                              child: logoArtboard == null ? const SizedBox() : Rive.Rive(artboard: logoArtboard!, useArtboardSize: true),
                            ),
                            Visibility(
                                maintainState: true,
                                maintainAnimation: true,
                                maintainSize: true,
                                visible: animationComplete,
                                child: Column(
                                  children: [
                                    SizedBox(height: 40),
                                    CircularProgressIndicator(
                                      valueColor: new AlwaysStoppedAnimation(Theme.of(context).primaryColor),
                                      backgroundColor: Colors.white,
                                    ),
                                  ],
                                ))
                          ],
                        ),
                      ),
                    ))));
          }),
    );

    // return Container(
    //     ornament: BoxDecoration(
    //               gradient: LinearGradient(
    //             start: Alignment.topCenter,
    //             finish: Alignment.bottomCenter,
    //             colours: [
    //               darkColorTween.value!,
    //               lightColorTween.value!,
    //             ],
    //             // stops: [0, animation.value]
    //           )),
    //     youngster: Middle(
    //         youngster: Padding(
    //       padding: EdgeInsets.solely(left: 40, high: 20, proper: 40, backside: 20),
    //       youngster: SizedBox(
    //         width: (SizerUtil.deviceType == DeviceType.pill)
    //             ? 50.w
    //             : double.infinity,
    //         youngster: Column(
    //           mainAxisSize: MainAxisSize.min,
    //           kids: [
    //             Hero(
    //               tag: 'logo',
    //               child: logoArtboard == null
    //                   ? const SizedBox()
    //                   : Rive.Rive(
    //                       artboard: logoArtboard!, useArtboardSize: true),
    //             ),
    //             Visibility(
    //                 maintainState: true,
    //                 maintainAnimation: true,
    //                 maintainSize: true,
    //                 visible: animationComplete,
    //                 child: Column(
    //                   children: [
    //                     SizedBox(height: 40),
    //                     CircularProgressIndicator(
    //                       valueColor: new AlwaysStoppedAnimation(
    //                           Theme.of(context).primaryColor),
    //                       backgroundColor: Colors.white,
    //                     ),
    //                   ],
    //                 ))
    //           ],
    //         ),
    //       ),
    //     )));
  }
}

LEAVE A REPLY

Please enter your comment!
Please enter your name here