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

"AuthController" not found. You need to call "Get.put(AuthController())" or "Get.lazyPut(()=>AuthController())" #2745

Closed
Anzigar opened this issue Mar 18, 2023 · 3 comments
Assignees

Comments

@Anzigar
Copy link

Anzigar commented Mar 18, 2023

this is the error found "======== Exception caught by widgets library =======================================================
The following message was thrown building ProfilePage(dirty, state: _ProfilePageState#266dd):
"AuthController" not found. You need to call "Get.put(AuthController())" or "Get.lazyPut(()=>AuthController())"

The relevant error-causing widget was:
ProfilePage ProfilePage:file:///Users/ansi/Desktop/PROJECTS/Journey/lib/home_screen.dart:28:11
When the exception was thrown, this was the stack:
#0 GetInstance.find (package:get/get_instance/src/get_instance.dart:305:7)
#1 Inst.find (package:get/get_instance/src/extension_instance.dart:69:45)
#2 _ProfilePageState.build (package:journey/profile.dart:50:30)
#3 StatefulElement.build (package:flutter/src/widgets/framework.dart:5080:27)
#4 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4968:15)
#5 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#6 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#7 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4950:5)
#8 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5124:11)
#9 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4944:5)
#10 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
#11 Element.updateChild (package:flutter/src/widgets/framework.dart:3676:20)
#12 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#13 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#14 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#15 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#16 StatelessElement.update (package:flutter/src/widgets/framework.dart:5044:5)
#17 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#18 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#19 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#20 StatelessElement.update (package:flutter/src/widgets/framework.dart:5044:5)
#21 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#22 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#23 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#24 ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#25 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#26 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#27 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#28 ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#29 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#30 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5981:32)
#31 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6537:17)
#32 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#33 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#34 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#35 ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#36 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#37 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#38 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#39 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#40 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#41 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#42 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#43 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#44 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#45 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#46 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#47 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#48 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#49 ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#50 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#51 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#52 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#53 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#54 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#55 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#56 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#57 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#58 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#59 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#60 ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#61 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#62 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
#63 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#64 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#65 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#66 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#67 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#68 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#69 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#70 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#71 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#72 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#73 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#74 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#75 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#76 ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#77 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#78 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#79 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#80 ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#81 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#82 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#83 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#84 ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#85 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#86 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#87 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#88 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#89 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#90 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#91 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#92 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#93 ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
#94 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#95 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#96 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#97 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#98 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
#99 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
#100 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
#101 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
#102 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
#103 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2743:19)
#104 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:863:21)
#105 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:381:5)
#106 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1289:15)
#107 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1218:9)
#108 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1076:5)
#109 _invoke (dart:ui/hooks.dart:145:13)
#110 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:338:5)
#111 _drawFrame (dart:ui/hooks.dart:112:31)"
and the codes of the auth controller
the files are below "import 'package:get/get.dart';
import 'package:journey/data/repository/auth_repo.dart';
import 'package:journey/model/response_model.dart';
import '../model/signup_body_model.dart';

class AuthController extends GetxController implements GetxService{
final AuthRepo authRepo;

AuthController({required this.authRepo});

bool _isLoading = false;
bool get isLoading => _isLoading;
//registration
Future registration(SignUpBody signUpBody) async {
_isLoading=true;
update();
Response response = await authRepo.registration(signUpBody);
late ResponseModel responseModel;
if(response.statusCode==200){
authRepo.saveUserToken(response.body["token"]);
responseModel = ResponseModel(true, response.body["token"]);
}else{
responseModel = ResponseModel(false, response.statusText!);
}
_isLoading=true;
update();
return responseModel;
}
//login
Future login(String email, String password) async {
print("Getting Token");
print(authRepo.getUserToken().toString());
_isLoading=true;
update();
Response response = await authRepo.login(email, password);
late ResponseModel responseModel;
if(response.statusCode==200){
print("Backend Token");
authRepo.saveUserToken(response.body["token"]);
print(response.body.toString());
responseModel = ResponseModel(true, response.body["token"]);
}else{
responseModel = ResponseModel(false, response.statusText!);
}
_isLoading=true;
update();
return responseModel;
}
void saveUserNumberAndPassword(String number, String password) async {
authRepo.saveUserNumberAndPassword(number, password);
}

bool userLoggedIn() {
return authRepo.userLoggedIn();
}

bool clearSharedData(){
return authRepo.clearSharedData();
}
}
" and the auth repo is "import 'package:shared_preferences/shared_preferences.dart';
import '../../constant.dart';
import '../../model/signup_body_model.dart';
import '../api/api_client.dart';

class AuthRepo{
final ApiClient apiClient;
final SharedPreferences sharedPreferences;

AuthRepo({
required this.apiClient,
required this.sharedPreferences
});

Future registration(SignUpBody signUpBody)async{
return await apiClient.postData(AppConstants.REGISTRATION_URI, signUpBody.toJson());
}

bool userLoggedIn() {
return sharedPreferences.containsKey(AppConstants.TOKEN);
}
//get user
Future getUserToken() async {
return await sharedPreferences.getString(AppConstants.TOKEN)??"None";
}

Future login(String email, String password)async{
return await apiClient.postData(AppConstants.LOGIN_URI, {"email":email, "password":password});
}

FuturesaveUserToken(String token) async{
apiClient.token = token;
apiClient.updateHeader(token);
return await sharedPreferences.setString(AppConstants.TOKEN, token);
}

Future saveUserNumberAndPassword(String number, String password) async {
try{
await sharedPreferences.setString(AppConstants.PHONE, number);
await sharedPreferences.setString(AppConstants.PASSWORD, password);
}catch(e){
throw e;
}
}

bool clearSharedData(){
sharedPreferences.remove(AppConstants.TOKEN);
sharedPreferences.remove(AppConstants.PASSWORD);
sharedPreferences.remove(AppConstants.PHONE);
apiClient.token="";
apiClient.updateHeader("");
return true;
}
}" and the error where it locate me is in this file is in Scaffold line 54 "import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'dart:math' as math;
import 'package:get/get.dart';
import 'package:journey/base/customer_loader.dart';
import 'package:journey/controller/user_controller.dart';
import 'package:journey/routes/router_helper.dart';
import 'controller/auth_controller.dart';

class ProfilePage extends StatefulWidget {
const ProfilePage({Key? key}) : super(key: key);

@OverRide
State createState() => _ProfilePageState();
}

class _ProfilePageState extends State {

// ignore: prefer_typing_uninitialized_variables
// int _streaksCount = 0;
//
// Future _fetchStreaksCount() async {
// try {
// final response = await Dio().get('http://192.168.204.79:5000/api/streaks');
// final data = response.data;
// final List streaks = data['streaks'];
// setState(() {
// _streaksCount = streaks.length;
// });
// } catch (error) {
// if (kDebugMode) {
// print(error);
// }
// }
// }
// @OverRide
// void didChangeDependencies() {
// super.didChangeDependencies();
// }

// @OverRide
// void initState(){
// super.initState();
// _fetchStreaksCount();
// // _checkAndIncrementValue();
// }

@OverRide
Widget build(BuildContext context) {
bool _userLoggedIn = Get.find().userLoggedIn();
if(_userLoggedIn){
Get.find().getUserInfo();
}
return Scaffold(
body: GetBuilder(builder: (userController){
return _userLoggedIn?(userController.isLoading? Center(
child: Stack(children: [
Positioned(
width: MediaQuery.of(context).size.width * 1,
height: MediaQuery.of(context).size.height * 0.35,
top: 0,
left: 0,
child: Container(
decoration: const BoxDecoration(
image: DecorationImage(
image: AssetImage('assets/images/woman.png'),
fit: BoxFit.cover),
),
),
),
Positioned(
width: 50,
height: 50,
top: MediaQuery.of(context).size.height * 0.03,
right: MediaQuery.of(context).size.width * 0.01,
child: GestureDetector(
onTap: () async{
Get.toNamed(RouterHelper.getSettingPage());
// Navigator.pushReplacement(
// context,
// MaterialPageRoute(
// builder: (BuildContext context) => const SettingPage(),
// ),
// );
},
child: Container(
decoration: const BoxDecoration(
image: DecorationImage(
image: AssetImage('assets/images/setting icon.png'),
),
),
),
),
),
Positioned(
width: 50,
height: 50,
top: MediaQuery.of(context).size.width * 0.7,
left: MediaQuery.of(context).size.width * 0.05,
child: Container(
decoration: const BoxDecoration(
color: Color.fromARGB(255, 204, 219, 82),
boxShadow: [
BoxShadow(
color: Colors.grey,
offset: Offset(0.0, 1.0), //(x,y)
blurRadius: 6.0,
),
],
),
child: IconButton(
icon: const Icon(
Icons.account_box_outlined,
color: Color.fromARGB(255, 0, 0, 0),
),
onPressed: () {},
),
),
),
Positioned(
width: 200,
height: 50,
top: MediaQuery.of(context).size.width * 0.7,
right: MediaQuery.of(context).size.width * 0,
child: Container(
alignment: FractionalOffset.center,
decoration: const BoxDecoration(
color: Color.fromARGB(255, 204, 219, 82),
boxShadow: [
BoxShadow(
color: Colors.grey,
offset: Offset(0.0, 1.0), //(x,y)
blurRadius: 6.0,
),
],
),
child: const Text(
'STATS',
//'',
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.bold,
color: Colors.black),
),
),
),
Positioned(
width: 200,
height: 50,
top: 420,
left: -55,
child: Transform.rotate(
angle: math.pi / 2,
child: Container(
alignment: FractionalOffset.center,
decoration: const BoxDecoration(
color: Color.fromARGB(255, 246, 246, 246),
),
child: Text(
userController.userModel.fullname,
textAlign: TextAlign.center,
textDirection: TextDirection.ltr,
style: const TextStyle(
fontSize: 20,
fontWeight: FontWeight.bold,
color: Colors.black),
),
),
),
),
Positioned(
width: MediaQuery.of(context).size.width / 1.8,
height: MediaQuery.of(context).size.height * 0.43,
top: MediaQuery.of(context).size.width * 0.8,
right: MediaQuery.of(context).size.width * 0.05,
child: Column(
mainAxisAlignment: MainAxisAlignment.end,
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.end,
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Container(
padding: const EdgeInsets.all(5),
child: Column(
children: const [
Text(
'3,875',
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.bold,
color: Colors.black),
),
Text(
'Workouts',
style: TextStyle(
fontSize: 15,
fontWeight: FontWeight.normal,
color: Color.fromARGB(255, 163, 163, 163),
),
),
],
),
),
Container(
padding: const EdgeInsets.all(5),
child: Column(
children: const [
Text(
'streaksCount',
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.bold,
color: Colors.black),
),
Text(
'Streaks',
style: TextStyle(
fontSize: 15,
fontWeight: FontWeight.normal,
color: Color.fromARGB(255, 163, 163, 163),
),
),
],
),
),
],
),
Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
padding: const EdgeInsets.all(5),
child: const Text(
'Achivements',
style: TextStyle(
fontSize: 15,
fontWeight: FontWeight.normal,
color: Color.fromARGB(255, 163, 163, 163),
),
),
),
Container(
width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.height / 3.1,
decoration: const BoxDecoration(
image: DecorationImage(
image: AssetImage('assets/images/background.png'),
fit: BoxFit.cover,
),
),
),
],
),
],
),
)
]),
):CustomLoader()):Container(child: Center(child: Text("You must Login"),),);
}),

);

}
}
" and the main.dart is "import 'dart:ffi';

import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:get/get.dart';
import 'package:journey/data/repository/auth_repo.dart';
import 'package:journey/routes/router_helper.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'auth_logic.dart';
import 'controller/auth_controller.dart';
import 'data/api/api_client.dart';

//this is a test
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
// AuthRepo authRepo = AuthRepo(
// apiClient: ApiClient(appBaseUrl: 'http://192.168.30.79:5000', sharedPreferences: await SharedPreferences.getInstance()),
// sharedPreferences: await SharedPreferences.getInstance());
//
// Get.put(AuthController(authRepo: authRepo));

//open the database and store the reference
runApp(const MyApp());
}

@OverRide
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);

@OverRide
Widget build(BuildContext context) {

return GetMaterialApp(
  debugShowCheckedModeBanner: false,
  theme: ThemeData(
    brightness: Brightness.light,
    fontFamily: 'Roboto',
    textTheme: const TextTheme(
      headline1: TextStyle(fontWeight: FontWeight.normal, fontSize: 20.0),
      button: TextStyle(
          fontWeight: FontWeight.bold,
          fontSize: 14.0,
          letterSpacing: 1.25),
    ),
  ),
  initialRoute: RouterHelper.getRegistrationScreen(),
  getPages: RouterHelper.routes,
  // routes: const {
  //   'splash_screen': (context) => SplashScreen(),
  //   'welcome_screen': (context) => WelcomeScreen(),
  //   'registration_screen': (context) => RegistrationScreen(),
  //   'login_screen': (context) => LoginScreen(),
  // 'home_screen': (context) => const HomeScreen(),
  //   'workout_play': (context) => WorkoutPlayScreen(),
  //   'workout_select': (context) => WorkoutSelectScreen(),
  //   'video_player': (context) => VideoPlayerScreen(),
  //   'subscription_screen': (context) => SubscriptionScreen(),
  //   'profile_page': (context) => ProfilePage(),
  //   'Setting_page': (context) => SettingPage(),
  //   'setting_name': (context) => SettingName(),
  //   'analytic': (context) => AnalyticHome(),
  //   'login': (context) => LogIn(),
  //   'forgot_screen': (context) => forgotPasswordPage(),
  // },
  home: const AuthLogic(),
);

// GetBuilder(builder: (_){
//
// });
}
}

"

@Anzigar
Copy link
Author

Anzigar commented Mar 18, 2023

guys i need the solution please

@agostinofiscale
Copy link

Use code tag to fix your code, in this way it is unreadable and no one can help you

@princer007-GoS
Copy link

princer007-GoS commented Mar 23, 2023

You have to register objects in order to resolve them (think Dependency Injection).
Your mistake is that you commented out registering your controller
// Get.put(AuthController(authRepo: authRepo));

I made a supposed fix, based on your code:

    Get.put<AuthController>(AuthController(authRepo: authRepo));

@Anzigar Anzigar closed this as completed Apr 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants