SuperController of Getx Package in Flutter causing a problem

66
May 02, 2022, at 6:40 PM

I am facing a problem when I extends a class with SuperController of Getx PAckage in Flutter. Please go through my code and let me know the solution.

main.dart

import 'package:flutter/material.dart';
import 'package:flutter_app/user_status_controller.dart';
import 'package:get/get.dart';
void main() {
  Get.put(UserStatusController());
  runApp(const MyApp());
}
class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return GetMaterialApp(
      home: HomePage(),
    );
  }
}
class HomePage extends StatelessWidget {
  const HomePage({Key? key}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return Center(
      child: Container(
          child: Text(
        'Hello',
        style: TextStyle(fontSize: 50),
      )),
    );
  }
}

user_status_controller.dart

import 'package:get/get.dart';
class UserStatusController extends SuperController {
  @override
  void onDetached() {}
  @override
  void onInactive() {}
  @override
  void onPaused() {}
  @override
  void onResumed() {}
}

The error thrown is:

E/flutter ( 3620): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: Null check operator used on a null value
E/flutter ( 3620): #0      FullLifeCycleMixin.onInit (package:get/get_state_manager/src/simple/get_controllers.dart:90:28)
E/flutter ( 3620): #1      GetLifeCycleBase._onStart (package:get/get_instance/src/lifecycle.dart:66:5)
E/flutter ( 3620): #2      InternalFinalCallback.call (package:get/get_instance/src/lifecycle.dart:12:26)
E/flutter ( 3620): #3      GetInstance._startController (package:get/get_instance/src/get_instance.dart:253:16)
E/flutter ( 3620): #4      GetInstance._initDependencies (package:get/get_instance/src/get_instance.dart:204:11)
E/flutter ( 3620): #5      GetInstance.find (package:get/get_instance/src/get_instance.dart:301:17)
E/flutter ( 3620): #6      GetInstance.put (package:get/get_instance/src/get_instance.dart:86:12)
E/flutter ( 3620): #7      Inst.put (package:get/get_instance/src/extension_instance.dart:89:21)
E/flutter ( 3620): #8      main (package:flutter_app/main.dart:6:7)
E/flutter ( 3620): #9      _runMainZoned.<anonymous closure>.<anonymous closure> (dart:ui/hooks.dart:129:25)
E/flutter ( 3620): #10     _rootRun (dart:async/zone.dart:1428:13)
E/flutter ( 3620): #11     _CustomZone.run (dart:async/zone.dart:1328:19)
[GETX] Instance "UserStatusController" has been created
E/flutter ( 3620): #12     _runZoned (dart:async/zone.dart:1863:10)
E/flutter ( 3620): #13     runZonedGuarded (dart:async/zone.dart:1851:12)
E/flutter ( 3620): #14     _runMainZoned.<anonymous closure> (dart:ui/hooks.dart:125:5)
E/flutter ( 3620): #15     _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:297:19)
E/flutter ( 3620): #16     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:192:12)

Could anybody tell me what is throwing the error. Please help me. This is a simple code I'm unable to understand what is causing this.

Answer 1

hmm try this if its working if not mention me

xample your main.dart

void main() {
  runApp(const MyApp());
}
class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return GetMaterialApp(
      home: HomePage(),
      getPages: RouteList.routeLists,
      initialRoute: "/home"
    );
  }
}

create a binding dart named it binding_home.dart depends on you

class YourBinding extends Bindings {
  @override
  void dependencies() {
    // TODO: implement dependencies
    Get.lazyPut(() => UserStatusController (), fenix: true);
  }
}

then on your route to bind it

class RouteList {
  static final routeLists = [
    GetPage(
        transition: Transition.cupertinoDialog,
        transitionDuration: 350.milliseconds,
        name: "/home",
        binding: YourBinding(),
        page: () => const HomePage()),
  ];
}

next is your controller

class UserStatusController extends SuperController {
  @override
  void onDetached() {}
  @override
  void onInactive() {}
  @override
  void onPaused() {}
  @override
  void onResumed() {}
}

then lastly on homepage try use Getview

class HomePage extends GetView<UserStatusController > {
  const HomePage({Key? key}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return Center(
      child: Container(
          child: Text(
        'Hello',
        style: TextStyle(fontSize: 50),
      )),
    );
  }
}

i do sometime it depends use Getview so that i wont put on the stateless like Get.put() or find(). as per default calling on the controller just type controller.yourValue

Answer 2

In order to use SuperController you need to call WidgetsFlutterBinding.ensureInitialized(); on the main function of your app:

void main(){
     WidgetsFlutterBinding.ensureInitialized();
     runApp(YourApp());
}
READ ALSO
Access the Bundle from navDeepLinkBuilder.setArguments(bundle)

Access the Bundle from navDeepLinkBuilder.setArguments(bundle)

There is a Service that at some point creates a Notification that always leads to the same FragmentThe Service wants to send the Fragment some Key-Value Data

50
TextView Marquee is not working in linearlayout

TextView Marquee is not working in linearlayout

Unfortunately, I cannot deal with this problemMore precisely, the marque function does not work for me after adding a TextView to LinearLayout

65
How can I expand a short URL, so I can get the full expanded URL in a variable?

How can I expand a short URL, so I can get the full expanded URL in a variable?

I want to expand a short URL and store the long URL in a variable without accessing that link with the browserAny ideas how I can do that in kotlin?

50
Google Fit API not returning activities from last 90 days

Google Fit API not returning activities from last 90 days

I'm trying to retrieve the Google Fit activities from the last 90 days, but it is not returning all the activities

42