It sure sounds like Impeller is the root cause for you. I recently had trouble with it too, the BackdropFilter w/ an ImageFilter.blur caused a low-end device to utterly fail with the whole screen flickering and generally bugging out. (Upgrading to 3.29.1 actually fixed that for me- they added better handling of bad OpenGLES implementations.)
DNS resolution isn’t blocking I/O thankfully (none of the networking or I/O calls are, to my knowledge), but if you accidentally drop an await in front, in main, before you set up the widget tree, it could block the UI for a bit. I’m not sure if it would trigger an ANR or not. I had some unfortunately slow network requests in my app that I nearly forgot about, until I started testing my app’s first-launch experience in airplane mode, and that opened my eyes to my bad behavior in main() before flutter was even initialized (oops!).
I missed your post that 3.24.5 (pre-Impeller default) worked. I’m glad you have a workaround… I hope you can eventually get past the problem and let us know what it was. Troubleshooting this sounds pretty nightmarish.
Your tip about DNS is a valid one, but I doubt Dart would be able to cause ANRs by its own, since, AFAIK, it will manage its own memory and (native) threads.
Somehow, the native Android surface that “renders” Flutter stuff is the one causing the ANR or some Dart/Flutter low-level initialization is waiting for something in a blocking way (which I don’t think Dart is even capable after the user app is actually running, except for FFI, but, then again, I think even a sync FFI that would block Flutter would not block the Android app, not sure about this, just a feeling, I don’t know exactly how Flutter deals with the native host platform in details).
Frustrating! Sorry to hear that your Android builds are being rejected by Google due to hanging issues. Lack of diagnostic info makes it tough to troubleshoot. Have you tried testing on different devices/emulators or reaching out to Google’s support for more insight?
My PM reached out to Google directly and told them to take a look. As soon as a human got involved, they were able to manually approve the app. Whatever automated process they’re using appears to be a source of pain. I still don’t know if it’s Flutter (although, evidence suggests it is) or their automated tooling (again, evidence suggests this is the case, as well). Either way, it’s frustrating that the only “solution” is to involve a human.
Using contents of this forum for the purposes of training proprietary AI models is forbidden. Only if your AI model is free & open source, go ahead and scrape. Flutter and the related logo are trademarks of Google LLC. We are not endorsed by or affiliated with Google LLC.