# Load License causing crash in Android

**URL:** <https://community.thinkgeo.com/t/load-license-causing-crash-in-android/10566>\
**Category:** MAUI\
**Created:** [February 13, 2025, 11:09pm UTC](https://community.thinkgeo.com/t/load-license-causing-crash-in-android/10566 "2025-02-13T23:09:53Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jimmy\_Pun](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/j/94ad74/32.png) [@Jimmy\_Pun](https://community.thinkgeo.com/u/Jimmy_Pun)\
**Post date:** [February 13, 2025, 11:09pm UTC](https://community.thinkgeo.com/t/load-license-causing-crash-in-android/10566/1 "2025-02-13T23:09:53Z")

</div>

Hi team,

I occur the app is sometime crashing when I try to load license, it happens about 50% of time.  
Package version: 14.2.1

I loaded the license in App.cs.OnStart()  
protected override async void OnStart()  
{  
base.OnStart();  
System.Diagnostics.Debug.WriteLine(“App-OnStart”);  
// Load in the Loading page while we wait for services

```
   await SampleGoLightInjectStartup.RegisterLicense();

```

}

Exception information : Java.Lang.IllegalStateException: ‘AssetInputStream is closed’  
Complete log  
[mono-rt] [ERROR] FATAL UNHANDLED EXCEPTION: Java.Lang.IllegalStateException: AssetInputStream is closed  
[mono-rt] at Java.Interop.JniEnvironment.InstanceMethods.CallNonvirtualIntMethod(JniObjectReference instance, JniObjectReference type, JniMethodInfo method, JniArgumentValue\* args) in /Users/runner/work/1/s/xamarin-android/external/Java.Interop/src/Java.Interop/obj/Release/net8.0/JniEnvironment.g.cs:line 20648  
[mono-rt] at Java.Interop.JniPeerMembers.JniInstanceMethods.InvokeNonvirtualInt32Method(String encodedMember, IJavaPeerable self, JniArgumentValue\* parameters) in /Users/runner/work/1/s/xamarin-android/external/Java.Interop/src/Java.Interop/Java.Interop/JniPeerMembers.JniInstanceMethods\_Invoke.cs:line 538  
[mono-rt] at Android.Content.Res.AssetManager.AssetInputStream.Read(Byte[] b, Int32 off, Int32 len) in /Users/runner/work/1/s/xamarin-android/src/Mono.Android/obj/Release/net9.0/android-35/mcw/Android.Content.Res.AssetManager.cs:line 136  
[mono-rt] at Android.Runtime.InputStreamInvoker.Read(Byte[] buffer, Int32 offset, Int32 count) in /Users/runner/work/1/s/xamarin-android/src/Mono.Android/Android.Runtime/InputStreamInvoker.cs:line 87  
[mono-rt] at System.IO.StreamReader.ReadBuffer()  
[mono-rt] at System.IO.StreamReader.get\_EndOfStream()  
[mono-rt] at ThinkGeo.UI.Maui.LicenseLoader.LoadLicense(String licenseFileName)  
[mono-rt] at ThinkGeo.UI.Maui.LicenseLoader.LoadLicense(String licenseFileName)  
[mono-rt] at SampleGo.LightInject.Registration.SampleGoLicensing.RegisterThinkGeoLicense() in C:\Users\Jimmy Pun\Desktop\Projects\SampleGo-MAUI\SampleGo\LightInject\Registration\SampleGoLicensing.cs:line 28  
[mono-rt] at SampleGo.LightInject.SampleGoLightInjectStartup.RegisterLicense() in C:\Users\Jimmy Pun\Desktop\Projects\SampleGo-MAUI\SampleGo\LightInject\SampleGoLightInjectStartup.cs:line 43  
[mono-rt] at SampleGo.App.OnStart() in C:\Users\Jimmy Pun\Desktop\Projects\SampleGo-MAUI\SampleGo\App.xaml.cs:line 56  
[mono-rt] at System.Threading.Tasks.Task.\<\>c.b\_\_128\_0(Object state)  
[mono-rt] at Android.App.SyncContext.\<\>c\_\_DisplayClass2\_0.b\_\_0() in /Users/runner/work/1/s/xamarin-android/src/Mono.Android/Android.App/SyncContext.cs:line 36  
[mono-rt] at Java.Lang.Thread.RunnableImplementor.Run() in /Users/runner/work/1/s/xamarin-android/src/Mono.Android/Java.Lang/Thread.cs:line 37  
[mono-rt] at Java.Lang.IRunnableInvoker.n\_Run(IntPtr jnienv, IntPtr native\_\_this) in /Users/runner/work/1/s/xamarin-android/src/Mono.Android/obj/Release/net9.0/android-35/mcw/Java.Lang.IRunnable.cs:line 59  
[mono-rt] at Android.Runtime.JNINativeWrapper.Wrap\_JniMarshal\_PP\_V(\_JniMarshal\_PP\_V callback, IntPtr jnienv, IntPtr klazz) in /Users/runner/work/1/s/xamarin-android/src/Mono.Android/Android.Runtime/JNINativeWrapper.g.cs:line 22  
[mono-rt] — End of managed Java.Lang.IllegalStateException stack trace —  
[mono-rt] java.lang.IllegalStateException: AssetInputStream is closed  
[mono-rt] at android.content.res.AssetManager$AssetInputStream.ensureOpen(AssetManager.java:1464)  
[mono-rt] at android.content.res.AssetManager$AssetInputStream.read(AssetManager.java:1403)  
[mono-rt] at mono.java.lang.RunnableImplementor.n\_run(Native Method)  
[mono-rt] at mono.java.lang.RunnableImplementor.run(RunnableImplementor.java:29)  
[mono-rt] at android.os.Handler.handleCallback(Handler.java:959)  
[mono-rt] at android.os.Handler.dispatchMessage(Handler.java:100)  
[mono-rt] at android.os.Looper.loopOnce(Looper.java:232)  
[mono-rt] at android.os.Looper.loop(Looper.java:317)  
[mono-rt] at android.app.ActivityThread.main(ActivityThread.java:8705)  
[mono-rt] at java.lang.reflect.Method.invoke(Native Method)  
[mono-rt] at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)  
[mono-rt] at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:886)  
[mono-rt]  
[mono-rt] — End of managed Java.Lang.IllegalStateException stack trace —  
[mono-rt] java.lang.IllegalStateException: AssetInputStream is closed  
[mono-rt] at android.content.res.AssetManager$AssetInputStream.ensureOpen(AssetManager.java:1464)  
[mono-rt] at android.content.res.AssetManager$AssetInputStream.read(AssetManager.java:1403)  
[mono-rt] at mono.java.lang.RunnableImplementor.n\_run(Native Method)  
[mono-rt] at mono.java.lang.RunnableImplementor.run(RunnableImplementor.java:29)  
[mono-rt] at android.os.Handler.handleCallback(Handler.java:959)  
[mono-rt] at android.os.Handler.dispatchMessage(Handler.java:100)  
[mono-rt] at android.os.Looper.loopOnce(Looper.java:232)  
[mono-rt] at android.os.Looper.loop(Looper.java:317)  
[mono-rt] at android.app.ActivityThread.main(ActivityThread.java:8705)  
[mono-rt] at java.lang.reflect.Method.invoke(Native Method)  
[mono-rt] at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)  
[mono-rt] at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:886)  
[mono-rt]  
[libc] FORTIFY: pthread\_mutex\_lock called on a destroyed mutex (0x7093cfe02ab8)  
[libc] FORTIFY: pthread\_mutex\_lock called on a destroyed mutex (0x7093cfe02ab8)  
[libc] Fatal signal 6 (SIGABRT), code -1 (SI\_QUEUE) in tid 15068 (hwuiTask0), pid 14898 (Sample.android)

---

<div class="post-metadata">

**Author:** ![Jimmy\_Pun](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/j/94ad74/32.png) [@Jimmy\_Pun](https://community.thinkgeo.com/u/Jimmy_Pun)\
**Post date:** [February 14, 2025, 5:01am UTC](https://community.thinkgeo.com/t/load-license-causing-crash-in-android/10566/2 "2025-02-14T05:01:59Z")

</div>

Interesting that the error is gone after changing the app initialize step…

---

<div class="post-metadata">

**Author:** ![Ben](https://community.thinkgeo.com/user_avatar/community.thinkgeo.com/ben/32/25720_2.png) [@Ben](https://community.thinkgeo.com/u/Ben)\
**Post date:** [February 14, 2025, 1:41pm UTC](https://community.thinkgeo.com/t/load-license-causing-crash-in-android/10566/3 "2025-02-14T13:41:51Z")

</div>

Hi Jimmy,

In fact, we saw this issue as well and have fixed it in the latest beta. The fix will be available in the upcoming release early next week as well.

Thanks,  
Ben
