Skip to content

Unable to run the project for android device in my local machine #89

@prakhar1032

Description

@prakhar1032

D/FlutterLocationService(26426): Creating service.
D/FlutterLocationService(26426): Binding to location service.
E/flutter (26426): [ERROR:flutter/runtime/dart_isolate.cc(144)] Could not prepare isolate.
E/flutter (26426): [ERROR:flutter/runtime/runtime_controller.cc(462)] Could not create root isolate.
E/flutter (26426): [ERROR:flutter/shell/common/shell.cc(669)] Could not launch engine with configuration.

import 'dart:async';

import 'package:enough_platform_widgets/enough_platform_widgets.dart';
import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:go_router/go_router.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';

import 'account/provider.dart';
import 'app_lifecycle/provider.dart';
import 'background/provider.dart';
import 'keys/service.dart';
import 'localization/app_localizations.g.dart';
import 'lock/provider.dart';
import 'logger.dart';
import 'notification/service.dart';
import 'routes/provider.dart';
import 'routes/routes.dart';
import 'scaffold_messenger/service.dart';
import 'screens/screens.dart';
import 'settings/provider.dart';
import 'settings/theme/provider.dart';
import 'share/provider.dart';

// AppStyles appStyles = AppStyles.instance;
void main() {
runApp(const InitializationScreen());
}

/// Runs the app
class EnoughMailApp extends HookConsumerWidget {
/// Creates a new app
const EnoughMailApp({
super.key,
required this.appName,
});

final String appName;

@OverRide
Widget build(BuildContext context, WidgetRef ref) {
useOnAppLifecycleStateChange((previous, current) {
logger.d('raw AppLifecycleState changed from $previous to $current');
ref.read(rawAppLifecycleStateProvider.notifier).state = current;
});

final themeSettingsData = ref.watch(themeFinderProvider(context: context));
final languageTag =
    ref.watch(settingsProvider.select((settings) => settings.languageTag));
final routerConfig = ref.watch(routerConfigProvider);

ref
  ..watch(incomingShareProvider)
  ..watch(backgroundProvider)
  ..watch(appLockProvider);

final app = Theme(
  data: themeSettingsData.brightness == Brightness.dark
      ? themeSettingsData.darkTheme
      : themeSettingsData.lightTheme,
  child: PlatformSnackApp.router(
    supportedLocales: AppLocalizations.supportedLocales,
    localizationsDelegates: AppLocalizations.localizationsDelegates,
    debugShowCheckedModeBanner: false,
    title: appName,
    routerConfig: routerConfig,
    scaffoldMessengerKey:
        ScaffoldMessengerService.instance.scaffoldMessengerKey,
    materialTheme: themeSettingsData.lightTheme,
    materialDarkTheme: themeSettingsData.darkTheme,
    materialThemeMode: themeSettingsData.themeMode,
    cupertinoTheme: themeSettingsData.cupertinoTheme,
  ),
);
if (languageTag == null) {
  return app;
}

return Localizations.override(
  context: context,
  locale: Locale(languageTag),
  child: app,
);

}
}

/// Initializes the app
class InitializationScreen extends ConsumerStatefulWidget {
/// Creates a new [InitializationScreen]
const InitializationScreen({super.key});

@OverRide
ConsumerState createState() =>
_InitializationScreenState();
}

class _InitializationScreenState extends ConsumerState {
@OverRide
void initState() {
_initApp();
super.initState();
}

Future _initApp() async {
await ref.read(settingsProvider.notifier).init();
await ref.read(realAccountsProvider.notifier).init();
// await ref.read(backgroundProvider.notifier).init();

if (context.mounted) {
  // TODO(RV): check if the context is really needed for NotificationService
  await NotificationService.instance.init(context: context);
}
await KeyService.instance.init();
logger.d('App initialized');
if (context.mounted) {
  if (ref.read(allAccountsProvider).isEmpty) {
    context.goNamed(Routes.welcome);
  } else {
    context.goNamed(Routes.mail);
  }
}

}

@OverRide
Widget build(BuildContext context) => const SplashScreen();
}

added this by me

void main() {
runApp(const InitializationScreen());
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions