-
Notifications
You must be signed in to change notification settings - Fork 526
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
[Flutter 3.22 & 3.24] AR crashes on Android < 13 - NoClassDefFoundError: Landroid/window/OnBackInvokedCallback #957
Comments
This comment was marked as off-topic.
This comment was marked as off-topic.
After a report in the Flutter repo this can be labeled as a Unity issue. The causeOnce AR boots up, Unity uses the The What nowFlutter won't stop using this class for a few people using the niche use-case of embedding Unity with AR. With some luck a try-catch around However this means either:
I've tried to decompile unity-classes.jar, but none of the decompilers that I could find returned valid code that could compile again without errors. Unity reproductionTo replicate this issue witthout Flutter:
TLDR (too long didn't read)AR is broken with Flutter 3.22+. Don't expect this to be fixed for months, if at all. |
This is now in the Unity issue tracker. They seem to have omitted most details from my bug report, but I guess it is a first step. Anyone affect by this should probably upvote this in the issuetracker. |
note that if you want to use AR with flutter 3.19.6 on android, make sure |
Unity got back to me on the bug report, calling it "By Design". Given that Flutter devs point me at Unity, and Unity considers it by design, AR is likely a lost cause on Android < 13. Since 3.16 and 3.19 contain various serious bugs (#912, #929) the last reliable version is 3.13.9, which is getting old. |
[UPDATE]
This is now in the Unity issue tracker.
Anyone affect by this should probably upvote this in the issuetracker.
Description
Since Flutter 3.22, Unity will crash on certain Android versions when ARFoundation is activated.
This only happens on Android <13.
This might also affect other unity plugins using native code, I just noticed it using ARFoundation.
Unity works fine for 3D scenes but crashes when I switch to a scene that includes ARFoundation and its ARSession.
Error in the console:
(unity 2022.3)
(unity 2023.2)
More info
Looking up OnBackInvokedCallback, it is added in API 33 (android 13) and is related to the predictive back gesture in Android 14.
I narrowed it down to this commit on Flutter master, which includes the engine PR Platform channel for predictive back in route transitions on android.
Any Flutter master commit before this one won't crash.
I can also reproduce this with the flutter_embed_unity plugin. So it isn't specific to code in this plugin.
Flutter version
Crashed on:
Did not crash on:
Unity version
Only tested with:
2022.3.21f1, 2022.3.33f1, 2023.2.20f1.
ArFoundation 5.1.2, 5.1.4 and 5.1.5
Android devices
Devices without crash:
Devices with crash:
Some things I've tried
-keep class android.window.** { *; }
-keep class android.window.OnBackInvokedCallback { *; }
.android:enableOnBackInvokedCallback="false"
to all androidmanifest activities and applications.implementation "androidx.activity:activity:1.6.0
in gradle(OnbackInvokedCallback is mentioned in the changes.)
The text was updated successfully, but these errors were encountered: