ThinkGeo.com    |     Documentation    |     Premium Support

Load License causing crash in Android

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)

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

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

1 Like