Handle errors in release build - flutter

I build a Flutter app and I handled some exceptions, all exceptions were cached by the app in debug mode but in release mode, I can't cache any exceptions, it seems there is a handler in the flutter engine, I try a lot of exceptions handlers and nothing helped me
FlutterError.onError
catcher
PlatformDispatcher.instance.onError
etc..

For Debugging, I would recommend using a generic try/catch block
try{
// do something
}
catch(e){
throw Exception(e);
}
and then run the app using --release flag and check the logs in console.

Related

I am having a problem building a Flutter App

I has a build a flutter app before successfully, but I try to update the code of my flutter app because I discovered some bugs but when j try to build it I get a error about error configuring video_player Android, I try to add it as a Dependencies but still it didn't work, I also invalidate cache's too it didn't work because it also said something about Cache's, I also upgraded my flutter SDK, still it didn't work, I will attach a image under this write up.
The error I am facing 😭😪
The error I am facing 😭😪
Write below command in terminal to clear cache with android project path.
flutter pub cache clean
./gradlew clean
gradlew cleanBuildCache

How to find cause of exception in a Flutter app using vscode

I am debugging my flutter application using vscode.
A unhandled exception is thrown and the execution is paused.
The callstack is only three lines deep and only contains "flutter code" so I am unable to see the cause of the exception.
Is it a way to make the callstack deeper so I can see witch line in my code that cause the exception?

Rider - Unity - Break on unhandled exception

How can I setup Rider so that its debugger breaks/stops whenever there is an unhandled exception? In particular, I set up assertions all over my code, I attach the Rider debugger and I hit play on Unity. I can see on the console that many of the assertions are failing, but the debugger doesn't halt and let me debug, it just continues.

How to debug what's wrong if app crashes only in release mode

I upgraded Flutter to 2.0.0 recently and am stuck with this issue. flutter run and flutter run --profile work perfectly well, but flutter run --release makes app crash after startup. There is no stacktrace, there is no error or warning, there is no build issue or verbose warning, no hint really. I googled a lot, but similar questions were answered like "try to remove this line" or "try to add that line". I couldn't find any clear steps on how to debug what's wrong.
What steps should I take to debug this issue and find the root cause instead of trying meaningless changes on code hoping some of them will eventually fix the issue?
Use adb logcat
OR
Enable debugging in release build, by modifying your android/app/build.gradle
like this
buildTypes {
release {
debuggable true
shrinkResources false
minifyEnabled false
...
}
}
When the error is code related and not in flutter itself sentry should help.
Sentry's Flutter SDK enables automatic reporting of errors, messages,
and exceptions.
You can import it just as any other package
dependencies:
sentry_flutter: ^4.0.6
and configure it as early as possible in you app
import 'package:flutter/widgets.dart';
import 'package:sentry_flutter/sentry_flutter.dart';
Future<void> main() async {
await SentryFlutter.init(
(options) => options.dsn = 'put_your_public_key_here',
appRunner: () => runApp(MyApp()),
);
}
To get your public key you just have to sign up on sentry.io and create a flutter project, no need to search for your key your it should be in the example code, it wont let you pass that point without initialiting it so you can't miss it.
The docs regarding flutter can be found here.
You can Use Firebase Analytics to see error logs from your released devices from firebase. Previously it was named as Fabric.
Or you can create your own log tracker, write the logs in a file and upload the log to your server.
You can give options to user to capture log and send to server within "Advanced Settings" or something like that.
try this flutter run --release --no-shrink
Check if you have given correct permission to the app in AndroidManifest.xml, in my case I simply fixed this issue by giving camera permission
<uses-permission android:name="android.permission.CAMERA" />
before the tag
In my case, after two day of confusion because app crashes only in release mode without any error on console, and errors shown in adb logcat not clear (unknown errors), after that I switching Flutter channel from stable to master, after run release on master channel errors started shown as clear messages, I solved these errors then crashes problem solved.
So my steps is:
1- Switching Flutter channel to master by run this command in terminal:
flutter channel master
2- Run upgrade command in terminal:
flutter upgrade
3- Run app as release:
flutter run --release
4- Watch console to see errors...

Not able to check error logs while developing PWA in flutter

I am working on Flutter PWA, in the console I am not able to check the error logs (similar to android error logs) after executing the command.
I tried working on VS code and Android studio
How should I check the error logs while developing for Flutter PWA?
print() statement will automatically print the output in the VS code debug console.
To open debug console in vs code goto View->Debug Console or use a key shortcut CTRL+SHIFT+Y
You should Use the print statement and check in run tab not logcat
Example Code :
try{
await FirebaseAuth.instance.signInWithEmailAndPassword(email:_email , password:_password);
}
catch(e){
print(e.message);
}