runtime: [maui] Airplane Mode causes app to crash with no message

Description

Starting an app (e.g., MonkeyFinder app) with Airplane Mode enabled, causes it to crash after splash screen. No message is displayed. The app just goes away.

Workload list:

Installed Workload Id      Manifest Version       Installation Source
---------------------------------------------------------------------
ios                        16.2.1024/7.0.100      VS 17.5.33502.453
maccatalyst                16.2.1024/7.0.100      VS 17.5.33502.453
maui-windows               7.0.59/7.0.100         VS 17.5.33502.453
maui-maccatalyst           7.0.59/7.0.100         VS 17.5.33502.453
maui-ios                   7.0.59/7.0.100         VS 17.5.33502.453
android                    33.0.26/7.0.100        VS 17.5.33502.453
maui-android               7.0.59/7.0.100         VS 17.5.33502.453
wasm-tools-net6            7.0.4/7.0.100          VS 17.5.33502.453
wasm-tools                 7.0.4/7.0.100          VS 17.5.33502.453

Steps to Reproduce

  1. Clone the repo, clean, build.
  2. Start Android emulator API 31 or 33 and set Airplane Mode to ON
  3. Start App
  4. It shows splash screen then aborts.

Link to public reproduction project repository

https://github.com/dotnet-presentations/dotnet-maui-workshop

Version with bug

7.0 (current)

Last version that worked well

7.0 (current)

Affected platforms

Android

Affected platform versions

Android API 31, 33

Did you find any workaround?

No workaround. The content from the output window is below. (I cleared the output window. Then, with Airplane Mode enabled, ran MonkeyFinder and waited for the app to crash. This is from the output window.)

Relevant log output

> am start -a "android.intent.action.MAIN" -c "android.intent.category.LAUNCHER" -n "com.companyname.monkeyfinder/crc64c2e3c35ecaf1aecc.MainActivity"
> Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.companyname.monkeyfinder/crc64c2e3c35ecaf1aecc.MainActivity }
[me.monkeyfinder] Late-enabling -Xcheck:jni
[me.monkeyfinder] Unexpected CPU variant for x86: x86_64.
[me.monkeyfinder] Known variants: atom, sandybridge, silvermont, kabylake, default
[CompatibilityChangeReporter] Compat change id reported: 171979766; UID 10160; state: ENABLED
[nativeloader] Configuring classloader-namespace for other apk /system_ext/framework/androidx.window.extensions.jar. target_sdk_version=33, uses_libraries=ALL, library_path=/data/app/~~NpSuQ8dwzQKPqXk0Cn7F2Q==/com.companyname.monkeyfinder-5yUs1skMIWC1-q3u3Ri6OA==/lib/x86_64:/data/app/~~NpSuQ8dwzQKPqXk0Cn7F2Q==/com.companyname.monkeyfinder-5yUs1skMIWC1-q3u3Ri6OA==/base.apk!/lib/x86_64, permitted_path=/data:/mnt/expand:/data/user/0/com.companyname.monkeyfinder
[nativeloader] Configuring classloader-namespace for other apk /system_ext/framework/androidx.window.sidecar.jar. target_sdk_version=33, uses_libraries=ALL, library_path=/data/app/~~NpSuQ8dwzQKPqXk0Cn7F2Q==/com.companyname.monkeyfinder-5yUs1skMIWC1-q3u3Ri6OA==/lib/x86_64:/data/app/~~NpSuQ8dwzQKPqXk0Cn7F2Q==/com.companyname.monkeyfinder-5yUs1skMIWC1-q3u3Ri6OA==/base.apk!/lib/x86_64, permitted_path=/data:/mnt/expand:/data/user/0/com.companyname.monkeyfinder
[ziparchive] Unable to open '/data/app/~~NpSuQ8dwzQKPqXk0Cn7F2Q==/com.companyname.monkeyfinder-5yUs1skMIWC1-q3u3Ri6OA==/base.dm': No such file or directory
[ziparchive] Unable to open '/data/app/~~NpSuQ8dwzQKPqXk0Cn7F2Q==/com.companyname.monkeyfinder-5yUs1skMIWC1-q3u3Ri6OA==/base.dm': No such file or directory
[nativeloader] Configuring classloader-namespace for other apk /data/app/~~NpSuQ8dwzQKPqXk0Cn7F2Q==/com.companyname.monkeyfinder-5yUs1skMIWC1-q3u3Ri6OA==/base.apk. target_sdk_version=33, uses_libraries=, library_path=/data/app/~~NpSuQ8dwzQKPqXk0Cn7F2Q==/com.companyname.monkeyfinder-5yUs1skMIWC1-q3u3Ri6OA==/lib/x86_64:/data/app/~~NpSuQ8dwzQKPqXk0Cn7F2Q==/com.companyname.monkeyfinder-5yUs1skMIWC1-q3u3Ri6OA==/base.apk!/lib/x86_64, permitted_path=/data:/mnt/expand:/data/user/0/com.companyname.monkeyfinder
[GraphicsEnvironment] ANGLE Developer option for 'com.companyname.monkeyfinder' set to: 'default'
[GraphicsEnvironment] ANGLE GameManagerService for com.companyname.monkeyfinder: false
[GraphicsEnvironment] Neither updatable production driver nor prerelease driver is supported.
[NetworkSecurityConfig] No Network Security Config specified, using platform default
[NetworkSecurityConfig] No Network Security Config specified, using platform default
[debug-app-helper] Checking if libmonodroid was unpacked to /data/app/~~NpSuQ8dwzQKPqXk0Cn7F2Q==/com.companyname.monkeyfinder-5yUs1skMIWC1-q3u3Ri6OA==/lib/x86_64/libmonodroid.so
[debug-app-helper] Native libs extracted to /data/app/~~NpSuQ8dwzQKPqXk0Cn7F2Q==/com.companyname.monkeyfinder-5yUs1skMIWC1-q3u3Ri6OA==/lib/x86_64, assuming application/android:extractNativeLibs == true
[debug-app-helper] Setting up for DSO lookup in app data directories
[debug-app-helper] Added filesystem DSO lookup location: /data/app/~~NpSuQ8dwzQKPqXk0Cn7F2Q==/com.companyname.monkeyfinder-5yUs1skMIWC1-q3u3Ri6OA==/lib/x86_64
[debug-app-helper] Using runtime path: /data/app/~~NpSuQ8dwzQKPqXk0Cn7F2Q==/com.companyname.monkeyfinder-5yUs1skMIWC1-q3u3Ri6OA==/lib/x86_64
[debug-app-helper] checking directory: `/data/user/0/com.companyname.monkeyfinder/files/.__override__/lib`
[debug-app-helper] directory does not exist: `/data/user/0/com.companyname.monkeyfinder/files/.__override__/lib`
[debug-app-helper] Checking whether Mono runtime exists at: /data/user/0/com.companyname.monkeyfinder/files/.__override__/libmonosgen-2.0.so
[debug-app-helper] Checking whether Mono runtime exists at: /data/app/~~NpSuQ8dwzQKPqXk0Cn7F2Q==/com.companyname.monkeyfinder-5yUs1skMIWC1-q3u3Ri6OA==/lib/x86_64/libmonosgen-2.0.so
[debug-app-helper] Mono runtime found at: /data/app/~~NpSuQ8dwzQKPqXk0Cn7F2Q==/com.companyname.monkeyfinder-5yUs1skMIWC1-q3u3Ri6OA==/lib/x86_64/libmonosgen-2.0.so
[me.monkeyfinder] Attempt to remove non-JNI local reference, dumping thread
[DOTNET] JNI_OnLoad: JNI_OnLoad in pal_jni.c
[DOTNET] GetOptionalClassGRef: optional class com/android/org/conscrypt/OpenSSLEngineImpl was not found
[monodroid] Creating public update directory: `/data/user/0/com.companyname.monkeyfinder/files/.__override__`
[me.monkeyfinder] Attempt to remove non-JNI local reference, dumping thread
[monodroid-debug] Trying to initialize the debugger with options: --debugger-agent=transport=dt_socket,loglevel=0,address=10.0.2.2:59156,embedding=1
[mono] debugger-agent: Unable to connect to 10.0.2.2:59156

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Comments: 18 (12 by maintainers)

Most upvoted comments

@RodBarnes it appears you can also just hit Ctrl+F5 currently (start without debugging).

@thaystg @grendello it appears if you put an emulator in airplane mode, the debugger exits with no crash at all:

03-16 00:58:15.364 16000 16000 E mono    : debugger-agent: Unable to connect to 10.0.2.2:55726
03-16 00:58:15.366   564   579 I ActivityManager: Killing 16000:com.companyname.AndroidApp17/u0a181 (adj 0): stop com.companyname.AndroidApp17 due to from pid 16030
03-16 00:58:15.368   564   579 W ActivityTaskManager: Force removing ActivityRecord{92c47a2 u0 com.companyname.AndroidApp17/crc640485b14fa048d3bd.MainActivity t293 f}}: app died, no saved state

Does it actually call exit() and that’s why no native stack trace is here at all?

If I run the same app in Release mode, it works fine. @RodBarnes that is what I would do for now if you need to test your app in airplane mode.