Open
Description
Bevy version
bevy 0.15.3
building on macos with m1
for
samsung OneUI 6.1 android 14
What you did
Rotating the screen for the bevy mobile example on android made the screen black
After the screen turn black the app doesn't crash until i click on the screen at which point it crashes within a few seconds
Additional information
Android logs:
Notifying Input Availablelog.target = "android_activity::activity_impl"; log.module_path = "android_activity::activity_impl"; log.file = "/Users/insertokname/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/android-activity-0.6.0/src/game_activity/mod.rs"; log.line = 320;
2025-03-14 21:47:51.197 28901-28933 log event org.bevyengine.example D Notifying Input Availablelog.target = "android_activity::activity_impl"; log.module_path = "android_activity::activity_impl"; log.file = "/Users/insertokname/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/android-activity-0.6.0/src/game_activity/mod.rs"; log.line = 320;
2025-03-14 21:47:51.246 28901-28933 log event org.bevyengine.example D Notifying Input Availablelog.target = "android_activity::activity_impl"; log.module_path = "android_activity::activity_impl"; log.file = "/Users/insertokname/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/android-activity-0.6.0/src/game_activity/mod.rs"; log.line = 320;
2025-03-14 21:47:51.277 28901-28901 ViewRootIm...nActivity] org.bevyengine.example I ViewPostIme pointer 1
2025-03-14 21:47:51.282 28901-28933 log event org.bevyengine.example D Notifying Input Availablelog.target = "android_activity::activity_impl"; log.module_path = "android_activity::activity_impl"; log.file = "/Users/insertokname/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/android-activity-0.6.0/src/game_activity/mod.rs"; log.line = 320;
[ 1741981671.288 28901:28942 D/event /Users/insertokname/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bevy_picDespawning pointer Touch(0)
[ 1741981671.297 28901:28942 D/event /Users/insertokname/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bevy_picUnable to get location for pointer Touch(0) during pointer out
2025-03-14 21:47:52.916 28901-28901 ViewRootIm...nActivity] org.bevyengine.example I onDisplayChanged oldDisplayState=2 newDisplayState=2
2025-03-14 21:47:52.946 28901-28901 ViewRootIm...nActivity] org.bevyengine.example V updateAppliedLetterboxDirection, direction=1, Caller=android.view.ViewRootImpl.handleDispatchLetterboxDirectionChanged:14139
2025-03-14 21:47:52.963 28901-28901 threaded_app org.bevyengine.example V Pause: 0xb400006fcb3ddc50
2025-03-14 21:47:52.972 28901-28933 threaded_app org.bevyengine.example V activityState=13
2025-03-14 21:47:52.973 28901-28901 ViewRootIm...nActivity] org.bevyengine.example I stopped(true) old = false
2025-03-14 21:47:52.973 28901-28901 ViewRootIm...nActivity] org.bevyengine.example D WindowStopped on org.bevyengine.example/org.bevyengine.example.MainActivity set to true
2025-03-14 21:47:52.974 28901-28930 OpenGLRenderer org.bevyengine.example D CacheManager::trimMemory(20)
2025-03-14 21:47:52.974 28901-28930 SurfaceView org.bevyengine.example D 48046018 windowPositionLost, frameNr = 0
2025-03-14 21:47:52.977 28901-28930 SurfaceView@5b92b31 org.bevyengine.example I aOrMT: ViewRootImpl@d8483b9[MainActivity] t = android.view.SurfaceControl$Transaction@9dfd1d3 fN = 0 android.view.SurfaceView.-$$Nest$mapplyOrMergeTransaction:0 android.view.SurfaceView$SurfaceViewPositionUpdateListener.positionLost:1696 android.graphics.RenderNode$CompositePositionUpdateListener.positionLost:376
2025-03-14 21:47:52.977 28901-28930 ViewRootIm...nActivity] org.bevyengine.example I mWNT: t=0xb400006feb413fb0 mBlastBufferQueue=0xb400006fcb4b6c30 fn= 0 mRenderHdrSdrRatio=1.0 caller= android.view.SurfaceView.applyOrMergeTransaction:1598 android.view.SurfaceView.-$$Nest$mapplyOrMergeTransaction:0 android.view.SurfaceView$SurfaceViewPositionUpdateListener.positionLost:1696
2025-03-14 21:47:52.979 28901-28901 SurfaceView@5b92b31 org.bevyengine.example I windowStopped(true) false com.google.androidgamesdk.GameActivity$InputEnabledSurfaceView{5b92b31 V.E...... ........ 0,0-1080,2546} of ViewRootImpl@d8483b9[MainActivity]
2025-03-14 21:47:52.979 28901-28901 SurfaceView org.bevyengine.example I 96021297 Changes: creating=false format=false size=false visible=true alpha=false hint=false visible=true left=false top=false z=false attached=true lifecycleStrategy=false
2025-03-14 21:47:52.979 28901-28901 SurfaceView@5b92b31 org.bevyengine.example I 96021297 Cur surface: Surface(name=null)/@0xe97ab2d
2025-03-14 21:47:52.979 28901-28901 SurfaceView org.bevyengine.example I 96021297 surfaceDestroyed
2025-03-14 21:47:52.980 28901-28901 SurfaceView@5b92b31 org.bevyengine.example I surfaceDestroyed callback.size 1 #1 com.google.androidgamesdk.GameActivity$InputEnabledSurfaceView{5b92b31 V.E...... ........ 0,0-1080,2546}
2025-03-14 21:47:52.980 28901-28901 threaded_app org.bevyengine.example V NativeWindowDestroyed: 0xb400006fcb3ddc50 -- 0xb400006fdb451be0
2025-03-14 21:47:52.980 28901-28901 threaded_app org.bevyengine.example V android_app_set_window called
2025-03-14 21:47:52.980 28901-28933 threaded_app org.bevyengine.example V APP_CMD_TERM_WINDOW
2025-03-14 21:47:52.989 28901-28933 threaded_app org.bevyengine.example V APP_CMD_TERM_WINDOW
2025-03-14 21:47:52.989 28901-28901 SurfaceView@5b92b31 org.bevyengine.example I updateSurface: mVisible = false mSurface.isValid() = true
2025-03-14 21:47:52.989 28901-28901 SurfaceView@5b92b31 org.bevyengine.example I releaseSurfaces: viewRoot = ViewRootImpl@d8483b9[MainActivity]
2025-03-14 21:47:52.990 28901-28901 SurfaceView@5b92b31 org.bevyengine.example V Layout: x=0 y=0 w=1080 h=2546, frame=Rect(0, 0 - 1080, 2546)
2025-03-14 21:47:52.991 28901-28901 threaded_app org.bevyengine.example V Stop: 0xb400006fcb3ddc50
2025-03-14 21:47:52.992 28901-28933 threaded_app org.bevyengine.example V activityState=14
2025-03-14 21:47:52.995 28901-28901 threaded_app org.bevyengine.example V SaveInstanceState: 0xb400006fcb3ddc50
[ 1741981672.995 28901:28933 W/event /Users/insertokname/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/winit-0.TODO: forward onStop notification to application
[ 1741981672.995 28901:28933 W/event /Users/insertokname/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/winit-0.TODO: forward saveState notification to application
2025-03-14 21:47:52.995 28901-28933 threaded_app org.bevyengine.example V APP_CMD_SAVE_STATE
2025-03-14 21:47:52.996 28901-28901 threaded_app org.bevyengine.example V Destroy: 0xb400006fcb3ddc50
2025-03-14 21:47:52.996 28901-28933 threaded_app org.bevyengine.example V APP_CMD_DESTROY
[ 1741981672.996 28901:28933 W/event /Users/insertokname/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/winit-0.TODO: forward onDestroy notification to application
2025-03-14 21:48:10.800 28901-28908 yengine.example org.bevyengine.example I Thread[6,tid=28908,WaitingInMainSignalCatcherLoop,Thread*=0xb4000070ab3e7630,peer=0x12c01d18,"Signal Catcher"]: reacting to signal 3
2025-03-14 21:48:10.800 28901-28908 yengine.example org.bevyengine.example I
2025-03-14 21:48:11.023 28901-28908 yengine.example org.bevyengine.example I Wrote stack traces to tombstoned
2025-03-14 21:48:15.146 2332-29219 ActivityManager system_server E ANR in org.bevyengine.example (org.bevyengine.example/.MainActivity)
PID: 28901
Reason: Input dispatching timed out (99a8472 org.bevyengine.example/org.bevyengine.example.MainActivity (server) is not responding. Waited 10000ms for MotionEvent)
Parent: org.bevyengine.example/.MainActivity
ErrorId: 3f9b36fa-0531-442b-8bbe-d74fd1352f72
Frozen: s[false] g[false]
Load: 2.69 / 3.15 / 3.07
------ Current CPU Core Info ------
- offline :
- online : 0-7
- AP Temp = 410
0 1 2 3 4 5 6 7
------------------------------------------------------------------------------------------------------------------
scaling_cur_freq 691200 691200 691200 691200 1555200 1555200 1555200 1536000
scaling_governor walt walt walt walt walt walt walt walt
scaling_max_freq 1440000 1440000 1440000 1440000 1996800 1996800 1996800 2246400
------------------------------------------------------------------------------------------------------------------
----- Output from /proc/pressure/memory -----
some avg10=0.05 avg60=0.07 avg300=0.53 total=253906127
full avg10=0.00 avg60=0.00 avg300=0.23 total=141625930
----- End output from /proc/pressure/memory -----
----- Output from /proc/pressure/cpu -----
some avg10=8.01 avg60=9.87 avg300=8.79 total=4140099905
----- End output from /proc/pressure/cpu -----
----- Output from /proc/pressure/io -----
some avg10=0.02 avg60=0.03 avg300=0.27 total=220754188
full avg10=0.00 avg60=0.00 avg300=0.11 total=137401151
----- End output from /proc/pressure/io -----
CPU usage from 286466ms to -1ms ago (2025-03-14 21:43:24.386 to 2025-03-14 21:48:10.853):
34% 3862/com.sec.android.app.launcher: 25% user + 8.5% kernel / faults: 1670 minor 121 major
29% 1566/surfaceflinger: 20% user + 9.8% kernel / faults: 236 minor 83 major
8.4% 2332/system_server: 4.8% user + 3.5% kernel / faults: 49842 minor 1124 major
8.4% 1470/vendor.qti.hardware.display.composer-service: 4.2% user + 4.1% kernel / faults: 126 minor
3.7% 1006/crtc_commit:152: 0% user + 3.7% kernel
2.8% 24264/adbd: 0.8% user + 2% kernel / faults: 7524 minor
2.8% 1536/audioserver: 2.2% user + 0.5% kernel / faults: 15 minor 108 major
2.4% 3162/com.android.systemui: 1.4% user + 0.9% kernel / faults: 24207 minor 624 major
2.1% 575/kgsl_dispatcher: 0% user + 2.1% kernel
2% 26939/kworker/u16:2-events_unbound: 0% user + 2% kernel / faults: 18 minor
20% TOTAL: 11% user + 8.2% kernel + 0% iowait + 1.1% irq + 0.2% softirq
CPU usage from 1028ms to 1802ms later (2025-03-14 21:48:11.880 to 2025-03-14 21:48:12.654):
59% 2332/system_server: 20% user + 38% kernel / faults: 1163 minor 2 major
38% 29221/AnrAuxiliaryTas: 8.8% user + 29% kernel
2.9% 2462/android.anim.lf: 0% user + 2.9% kernel
2.9% 6530/binder:2332_1F: 2.9% user + 0% kernel
2.9% 29219/AnrConsumer: 0% user + 2.9% kernel
22% 1566/surfaceflinger: 14% user + 8.5% kernel
11% 1566/surfaceflinger: 8.5% user + 2.8% kernel
5.7% 1876/surfaceflinger: 2.8% user + 2.8% kernel
5.7% 3083/binder:1566_5: 2.8% user + 2.8% kernel
2.8% 2157/binder:1566_4: 2.8% user + 0% kernel
15% 3162/com.android.systemui: 12% user + 3% kernel / faults: 51 minor 3 major
9% 3372/RenderThread: 6% user + 3% kernel
6% 3162/ndroid.systemui: 3% user + 3% kernel
3% 3335/binder:3162_5: 3% user + 0% kernel
16% 6329/com.sec.android.sdhms: 6.5% user + 9.8% kernel / faults: 349 minor 661 major
13% 6380/Signal Catcher: 6.5% user + 6.5% kernel
3.2% 6396/binder:6329_2: 0% user + 3.2% kernel
3.2% 6576/SDHMS Handler T: 3.2% user + 0% kernel
3.2% 14464/binder:6329_10: 3.2% user + 0% kernel
3.2% 15833/binder:6329_9: 3.2% user + 0% kernel
12% 3773/com.sec.imsservice: 0% user + 12% kernel / faults: 431 minor 1250 major
9.2% 3795/Signal Catcher: 0% user + 9.2% kernel
2025-03-14 21:48:15.146 2332-29219 ActivityManager system_server E 12% 4956/com.qualcomm.location: 6.3% user + 6.3% kernel / faults: 255 minor 863 major
6.3% 4970/Signal Catcher: 3.1% user + 3.1% kernel
3.1% 4991/binder:4956_2: 0% user + 3.1% kernel
13% 6323/com.sec.android.diagmonagent: 6.5% user + 6.5% kernel / faults: 264 minor 914 major
6.5% 6342/Signal Catcher: 3.2% user + 3.2% kernel
15% 27227/com.qti.qcc: 3.8% user + 11% kernel / faults: 250 minor 938 major
11% 27250/Signal Catcher: 3.8% user + 7.6% kernel
3.8% 27266/binder:27227_2: 0% user + 3.8% kernel
9.7% 6283/com.qualcomm.qti.services.systemhelper:systemhelper_service: 6.5% user + 3.2% kernel / faults: 266 minor 848 major
13% 6301/Signal Catcher: 6.5% user + 6.5% kernel
11% 24264/adbd: 3.6% user + 7.3% kernel
7.3% 24264/adbd: 3.6% user + 3.6% kernel
3.6% 24279/UsbFfs-worker: 0% user + 3.6% kernel
5.6% 1470/vendor.qti.hardware.display.composer-service: 2.8% user + 2.8% kernel
2.8% 1602/composer-servic: 0% user + 2.8% kernel
2.8% 1708/HwBinder:1470_1: 2.8% user + 0% kernel
6.2% 3781/com.android.se: 3.1% user + 3.1% kernel / faults: 238 minor 820 major
9.3% 3827/Signal Catcher: 3.1% user + 6.2% kernel
7.5% 26939/kworker/u16:2-memlat_wq: 0% user + 7.5% kernel
8% 28901/org.bevyengine.example: 8% user + 0% kernel
4% 28933/android_main: 4% user + 0% kernel
1.3% 14/rcuog/0: 0% user + 1.3% kernel
1.3% 26/rcuop/1: 0% user + 1.3% kernel
2.5% 55/rcuop/5: 0% user + 2.5% kernel
2.5% 69/rcuop/7: 0% user + 2.5% kernel
2.6% 416/logd: 2.6% user + 0% kernel / faults: 2 minor
2.6% 468/logd.writer: 2.6% user + 0% kernel
2.6% 575/kgsl_dispatcher: 0% user + 2.6% kernel
2.6% 1006/crtc_commit:152: 0% user + 2.6% kernel
2.7% 1429/android.hardware.audio.service_64: 2.7% user + 0% kernel
5.5% 13366/writer: 2.7% user + 2.7% kernel
2.8% 1464/vendor.qti.hardware.AGMIPC@1.0-service: 0% user + 2.8% kernel
2.8% 2116/AGMIPC@1.0-serv: 0% user + 2.8% kernel
2.8% 1536/audioserver: 2.8% user + 0% kernel
5.7% 2412/AudioOut_15: 5.7% user + 0% kernel
2.9% 1893/rild: 0% user + 2.9% kernel / faults: 1 minor 27 major
2.9% 2207/ESAR2: 2.9% user + 0% kernel
2.9% 2328/ESAR: 0% user + 2.9% kernel
3% 3140/com.android.phone: 0% user + 3% kernel / faults: 29 minor 32 major
3% 3283/HwBinder:3140_1: 3% user + 0% kernel
3.3% 12597/kworker/u17:4-ufs_clk_gating_0: 0% user + 3.3% kernel
3.3% 12901/kworker/u16:3-memlat_wq: 0% user + 3.3% kernel
3.4% 16523/kworker/u16:0-five_hook_wq: 0% user + 3.4% kernel
3.7% 25346/logcat: 0% user + 3.7% kernel
4% 29492/com.bigduckgames.flow: 0% user + 4% kernel
4% 30390/com.google.android.youtube: 4% user + 0% kernel / faults: 1 minor
29% TOTAL: 12% user + 14% kernel + 0.8% iowait + 1.1% irq + 0.1% softirq
---------------------------- PROCESS ENDED (28901) for package org.bevyengine.example ----------------------------
Activity
RabadanDotDev commentedon Apr 13, 2025
I get a similar issue compiling in Arch Linux (x86) for a Redmi Note 10 Pro. In my case, instead of crashing, the app just gets stuck in the black screen until the OS complains about the app not responding.
Tested in
v0.15.3
andv0.16.0-rc.4
Android logs
RabadanDotDev commentedon Apr 14, 2025
I was checking the logs and looks like the issue is that the GameActivity gets destroyed when rotating the device by default. The way to fix it is to simply add
android:configChanges="orientation|screenSize"
to the AndroidManifest.xml as indicated in https://stackoverflow.com/a/3329486.As I understand from the docs, this makes the app "self-manage" the fact that the configuration of the screen has changed. After doing this, the rotation seems to generate a
WindowResized
event, so the device rotation can be detected if an app is interested of doing so.I will make a PR updating the examples
insertokname commentedon Apr 20, 2025
Thanks a lot for the help! Should i close this now?
RabadanDotDev commentedon Apr 20, 2025
I would say to leave this open until the changes are merged in case another person comes across the same problem.