I can't run MUAI release build on Android devices

Jalza 781 Reputation points
2024-07-29T10:19:01.87+00:00

I'm developing a MAUI application. During development I was able to run it from Visual Studio without any problems in debug mode. Now that I have to send it to the customer I tried to run it in release mode, and it turns out that I can't run it. Generating an APK and installing it doesn't work either, the splash screen opens and then the application closes.

Information about the execution environment:

  • Visual Studio 2022 (version 17.10.3)
  • .NET 8

Nuget packages:

  • Camera.MAUI.ZXing 1.0.0
  • CommunityToolkit.Maui 9.0.2
  • CommunityToolkit.Mvvm 8.2.2
  • Microsoft.Extensions.Logging.Debug 8.0.0
  • Microsoft.Maui.Controls 8.0.70 (also tested with 8.0.40)
  • Microsoft.Maui.Controls.Compatibility 8.0.70 (also tested with 8.0.40)
  • Microsoft.NET.ILLink.Tasks 8.0.6

Running with Maui.Controls 8.0.70, I can read this in the logcat:

<no-tag>                my.app.id                            E  * Assertion at /__w/1/s/src/mono/mono/mini/aot-runtime.c:2531, condition `is_ok (error)' not met, function:decode_cached_class_info, Image out of date: Microsoft.Maui.Controls.dll.so
libc                    my.app.id                            A  Fatal signal 6 (SIGABRT), code -6 (SI_TKILL) in tid 15005 (g.my.app.namespace), pid 15005 (g.my.app.namespace)
GameManagerService      system_server                        D  handleForegroundChange(). pkgName: my.app.id, clsName: crc647c0b3fe13d23896f.MainActivity,FgActivityName:my.app.id/crc647c0b3fe13d23896f.MainActivity,userID:0
DEBUG                   crash_dump64                         A  pid: 15005, tid: 15005, name: g.my.app.namespace  >>> my.app.id <<<
DEBUG                   crash_dump64                         A      #01 pc 000000000001f360  /data/app/my.app.id-4SnY1byY9bitVBb9Oy8osA==/lib/arm64/libmonodroid.so (xamarin::android::Helpers::abort_application()+8)
DEBUG                   crash_dump64                         A      #02 pc 0000000000035660  /data/app/my.app.id-4SnY1byY9bitVBb9Oy8osA==/lib/arm64/libmonodroid.so (xamarin::android::internal::MonodroidRuntime::mono_log_handler(char const*, char const*, char const*, int, void*)+144)
DEBUG                   crash_dump64                         A      #03 pc 00000000001d71e4  /data/app/my.app.id-4SnY1byY9bitVBb9Oy8osA==/lib/arm64/libmonosgen-2.0.so
DEBUG                   crash_dump64                         A      #04 pc 00000000001d7310  /data/app/my.app.id-4SnY1byY9bitVBb9Oy8osA==/lib/arm64/libmonosgen-2.0.so
DEBUG                   crash_dump64                         A      #05 pc 000000000013a220  /data/app/my.app.id-4SnY1byY9bitVBb9Oy8osA==/lib/arm64/libmonosgen-2.0.so
DEBUG                   crash_dump64                         A      #06 pc 000000000013a3f0  /data/app/my.app.id-4SnY1byY9bitVBb9Oy8osA==/lib/arm64/libmonosgen-2.0.so
DEBUG                   crash_dump64                         A      #07 pc 000000000020b364  /data/app/my.app.id-4SnY1byY9bitVBb9Oy8osA==/lib/arm64/libmonosgen-2.0.so (mono_class_init_internal+436)
DEBUG                   crash_dump64                         A      #08 pc 00000000002075f8  /data/app/my.app.id-4SnY1byY9bitVBb9Oy8osA==/lib/arm64/libmonosgen-2.0.so (mono_ldtoken_checked+572)
DEBUG                   crash_dump64                         A      #09 pc 00000000000c0740  /data/app/my.app.id-4SnY1byY9bitVBb9Oy8osA==/lib/arm64/libmonosgen-2.0.so
DEBUG                   crash_dump64                         A      #10 pc 000000000013d934  /data/app/my.app.id-4SnY1byY9bitVBb9Oy8osA==/lib/arm64/libmonosgen-2.0.so
DEBUG                   crash_dump64                         A      #11 pc 000000000013eaec  /data/app/my.app.id-4SnY1byY9bitVBb9Oy8osA==/lib/arm64/libmonosgen-2.0.so
DEBUG                   crash_dump64                         A      #12 pc 00000000001526cc  /data/app/my.app.id-4SnY1byY9bitVBb9Oy8osA==/lib/arm64/libmonosgen-2.0.so
ActivityManager         system_server                        W  crash : my.app.id,0
audit                   auditd                               E  type=1701 audit(1722246781.309:1009): auid=4294967295 uid=10485 gid=10485 ses=4294967295 subj=u:r:untrusted_app:s0:c229,c257,c512,c768 pid=15005 comm="g.my.app.namespace" exe="/system/bin/app_process64" sig=6
ActivityManager         system_server                        W    Force finishing activity my.app.id/crc647c0b3fe13d23896f.MainActivity
AppErrorNotification    com.samsung.android.lool             D  errorType : 24, process : my.app.id , uid : 0
ActivityManager         system_server                        I  Process my.app.id (pid 15005) has died: vis  +99TOP (257,1574)
WindowManager           system_server                        E  win=Window{4a0b711 u0 Splash Screen my.app.id EXITING} destroySurfaces: appStopped=false win.mWindowRemovalAllowed=true win.mRemoveOnExit=true win.mViewVisibility=0 caller=com.android.server.wm.AppWindowToken.destroySurfaces:871 com.android.server.wm.AppWindowToken.destroySurfaces:852 com.android.server.wm.WindowState.onExitAnimationDone:5480 com.android.server.wm.-$$Lambda$01bPtngJg5AqEoOWfW3rWfV7MH4.accept:2 java.util.ArrayList.forEach:1262 com.android.server.wm.AppWindowToken.onAnimationFinished:2408 com.android.server.wm.AppWindowToken.setVisibility:552

Running with Maui.Controls 8.0.40, I can read this in the logcat:

AndroidRuntime          my.app.id     E  FATAL EXCEPTION: main
                                         Process: my.app.id, PID: 17722
                                         android.runtime.JavaProxyThrowable: [System.Reflection.TargetInvocationException]: Arg_TargetInvocationException
                                             at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Unknown Source:0)
                                             at System.RuntimeType.CreateInstanceMono(Unknown Source:0)
                                             at System.RuntimeType.CreateInstanceDefaultCtor(Unknown Source:0)
                                             at System.Activator.CreateInstance(Unknown Source:0)
                                             at System.Activator.CreateInstance(Unknown Source:0)
                                             at System.Activator.CreateInstance(Unknown Source:0)
                                             at Microsoft.Maui.Controls.ShellContent+<>c__DisplayClass19_0.<Microsoft.Maui.Controls.IShellContentController.GetOrCreateContent>b__0(Unknown Source:0)
                                             at Microsoft.Maui.Controls.ElementTemplate.CreateContent(Unknown Source:0)
                                             at Microsoft.Maui.Controls.Internals.DataTemplateExtensions.CreateContent(Unknown Source:0)
                                             at Microsoft.Maui.Controls.ShellContent.Microsoft.Maui.Controls.IShellContentController.GetOrCreateContent(Unknown Source:0)
                                             at Microsoft.Maui.Controls.Platform.Compatibility.ShellSectionRenderer.OnCreateView(Unknown Source:0)
                                             at AndroidX.Fragment.App.Fragment.n_OnCreateView_Landroid_view_LayoutInflater_Landroid_view_ViewGroup_Landroid_os_Bundle_(Unknown Source:0)
                                             at Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPLLL_L(Unknown Source:0)
                                             at crc640ec207abc449b2ca.ShellSectionRenderer.n_onCreateView(Native Method)
                                             at crc640ec207abc449b2ca.ShellSectionRenderer.onCreateView(ShellSectionRenderer.java:44)
                                             at androidx.fragment.app.Fragment.performCreateView(Fragment.java:3114)
                                             at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:557)
                                             at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:272)
                                             at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1943)
                                             at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1845)
                                             at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1782)
                                             at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3042)
                                             at androidx.fragment.app.FragmentManager.dispatchViewCreated(FragmentManager.java:2945)
                                             at androidx.fragment.app.Fragment.performViewCreated(Fragment.java:3148)
                                             at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:588)
                                             at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:272)
                                             at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1943)
                                             at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1845)
                                             at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1782)
                                             at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3042)
                                             at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2952)
                                             at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:263)
                                             at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:350)
                                             at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:251)
                                             at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1395)
                                             at android.app.Activity.performStart(Activity.java:7348)
                                             at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3145)
                                             at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:180)
                                             at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:165)
                                             at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:142)
                                             at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1955)
                                             at android.os.Handler.dispatchMessage(Handler.java:106)
                                             at android.os.Looper.loop(Looper.java:214)
AndroidRuntime          my.app.id     E      at android.app.ActivityThread.main(ActivityThread.java:7078)
                                             at java.lang.reflect.Method.invoke(Native Method)
                                             at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)

I don't know what other information could be helpful in solving the problem.

.NET MAUI
.NET MAUI
A Microsoft open-source framework for building native device applications spanning mobile, tablet, and desktop.
3,244 questions
0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. Bruce (SqlWork.com) 61,811 Reputation points
    2024-07-29T21:37:06.71+00:00

    the error indicates a build problem. the error means the version of the dlls in the deployment, don't match the version used in the build.

    0 comments No comments