When I perform a flutter run I get an error
Target file "lib/main.dart" not found.
Why is this happening and how can I fix this ?
You can run any file from any DIR provided that you set the target file path, example:
flutter run -t lib/main_dev.dart
OR
flutter run lib/dev/main_dev.dart
UPDATE (2020 February 5th)
It is however not advisable to remove main.dart from your project.
I'm sure most of you found this link because you are setting up / configuring your app to accommodate for different environments e.g. dev, stg, beta and prod.
Example:
main_dev.dart:
void main() async {
dynamic configuredApp = AppConfig(
appName: 'Flutter',
flavorName: 'development',
appVersion: 1.0,
apiBaseUrl: 'https://dev-api.example.com/'
);
runApp(App(configuredApp));
}
main.dart
class App extends StatefulWidget {
final dynamic configuredApp;
App(this.configuredApp);
@override
_AppState createState() => _AppState();
}
As it turns out some build steps will fail in Android Studio mostly Gradle related if you don't have a main.dart file and method main() {} referenced inside this file.
An alternative to flutter run -t lib/main_dev.dart
in VS Code with the debugger tool.
.vscode/launch.json
"configurations": [
{
"name": "Flutter",
"request": "launch",
"type": "dart",
// "args": ["--enable-software-rendering"]
// "flutterMode": "profile", //debug //release
"program": "${workspaceFolder}/lib/main_dev.dart"
}
]
Flutter is looking for main.dart in lib folder while you must have had file inside any other package.
Best solution is to place your main.dart file just inside lib folder. Flutter run command will work then for sure.
It worked for me.
main.dart url should be:
<app dir>/lib/main.dart
So basically when you execute this
flutter run
Flutter tries to find main.dart in /lib directory.
So if you have a file that is present in some other child directory of /lib directory or has a different name like result_page.dart, you'd encounter this error.
Now, a lot of answers had suggested to either rename your file to main.dart or move it directly under /lib directory.
But you can actually simply run any file by simply providing the target file's path from the current directory like this -
flutter run --target=lib/customization/result_screen.dart
So this would simply execute my result_screen.dart file present under some other child directory called customization.
You can also generate the APK file following the same logic and the command would look like this -
flutter build apk --target=lib/customization/result_screen.dart --target-platform=android-arm64
where --target-platform=android-arm64 is optional and is meant for 64-bit Android devices which helps in reducing APK size which otherwise would generate a fat APK including both 32-bit and 64-bit binaries. More info here
If you are using visual code and you encounter this problem while debugging, just go to launch.json, go to the location of where your flutter app is located, to the lib folder and then to the main.dart ,copy the path then add it to the text program in the launch.json as indicated on the photo below
I had a similar error message, and it happened because I accidentally deleted the void main()
Try final FlutterDevice flutterDevice = await FlutterDevice.create
The root cause is that the ResidentRunner we use to attach and do hot reloads will try to find a main.dart file when a target isn't announced. Attach doesn't provide a target, so it uses the default behavior always. As per DaceShuckerow.
This issue is still there on the official Repo.
What my case was I forgot to write code for calling main....
void main()
{
runApp......
}
And doing this worked
In case someone is struggling with this what worked for me is to recreate ios folder. And -t works regardless of the location of the target or name of the target and without any need to have main.dart in your lib folder.
To recreate ios folder
lib/Screen/SplashScreen/Splash.dart:10:8: Error: Error when reading 'lib/widgets/applogo.dart': No such file or directory import 'package:eshop_multivendor/widgets/applogo.dart'; ^ lib/Screen/Auth/Login.dart:12:8: Error: Error when reading 'lib/widgets/applogo.dart': No such file or directory import 'package:eshop_multivendor/widgets/applogo.dart'; ^ lib/Screen/Auth/SignInUpAcc.dart:3:8: Error: Error when reading 'lib/widgets/applogo.dart': No such file or directory import 'package:eshop_multivendor/widgets/applogo.dart'; ^ lib/Screen/Auth/SendOtp.dart:5:8: Error: Error when reading 'lib/widgets/applogo.dart': No such file or directory import 'package:eshop_multivendor/widgets/applogo.dart'; ^ lib/Screen/Auth/Verify_Otp.dart:8:8: Error: Error when reading 'lib/widgets/applogo.dart': No such file or directory import 'package:eshop_multivendor/widgets/applogo.dart'; ^ lib/Screen/Auth/Set_Password.dart:2:8: Error: Error when reading 'lib/widgets/applogo.dart': No such file or directory import 'package:eshop_multivendor/widgets/applogo.dart'; ^ lib/Screen/Auth/SignUp.dart:8:8: Error: Error when reading 'lib/widgets/applogo.dart': No such file or directory import 'package:eshop_multivendor/widgets/applogo.dart'; ^ lib/Screen/Auth/Login.dart:1099:20: Error: Couldn't find constructor 'AppLogo'. child: const AppLogo(), ^^^^^^^ lib/Screen/Auth/SignInUpAcc.dart:30:20: Error: Couldn't find constructor 'AppLogo'. child: const AppLogo(), ^^^^^^^ lib/Screen/Auth/SendOtp.dart:696:20: Error: Couldn't find constructor 'AppLogo'. child: const AppLogo(), ^^^^^^^ lib/Screen/Auth/Verify_Otp.dart:285:20: Error: Couldn't find constructor 'AppLogo'. child: const AppLogo(), ^^^^^^^ lib/Screen/Auth/Set_Password.dart:393:20: Error: Couldn't find constructor 'AppLogo'. child: const AppLogo(), ^^^^^^^ lib/Screen/Auth/SignUp.dart:562:20: Error: Couldn't find constructor 'AppLogo'. child: const AppLogo(), ^^^^^^^ Target kernel_snapshot failed: Exception
FAILURE: Build failed with an exception.
Process 'command '/home/user/snap/flutter/common/flutter/bin/flutter'' finished with non-zero exit value 1
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
BUILD FAILED in 16s Running Gradle task 'assembleDebug'... 16.6s Error: Gradle task assembleDebug failed with exit code 1
flutter doctorto your question.