Hello,
I’ve noticed that the Android build/preview on Android 8.0 is crashing on the example below:
Using Fuse build 14438
<App>
<ClientPanel>
<Alive.FallbackTheme />
<StackPanel ItemSpacing="10" Margin="10">
<!-- Index Out of Range -->
<Alive.LightTheme/>
<Alive.Title Value="Title"/>
<Alive.Body Value="Body"/>
<Alive.BodyBold Value="BodyBold"/>
<Alive.NavBarTitle Value="NavBarTitle"/>
<Alive.Subtitle Value="Subtitle"/>
<Alive.ButtonText Value="ButtonText"/>
</StackPanel>
</ClientPanel>
</App>
It throws an Uno.IndexOutOfRangeException: Index out of range
Probably due to the way the default fonts are defined on Alive.TextStyles
Error stack on Export build:
java.lang.RuntimeException: Uno.IndexOutOfRangeException: Index out of range
at com.Bindings.ExternedBlockHost.callUno_Uno_Platform_AndroidDisplay_OnFrameCallback55(Native Method)
at com.foreign.Uno.Platform.AndroidDisplay$1.doFrame(AndroidDisplay.java:55)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:964)
at android.view.Choreographer.doCallbacks(Choreographer.java:778)
at android.view.Choreographer.doFrame(Choreographer.java:710)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:952)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6803)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
Error stack on Preview:
ONEPLUS A3010]: Uno.IndexOutOfRangeException: Index out of range
at Uno.Collections.List`1.BoundsCheck(int)
at Uno.Collections.List`1.get_Item(int)
at Fuse.Font.get_FileSource()
at Fuse.Controls.Native.Android.TypefaceCache.GetTypeface(Fuse.Font)
at Fuse.Android.TextControlLayout.UpdatePaint(Fuse.Controls.TextControl,Fuse.Android.TextPaint)
at Fuse.Android.TextRenderer.UpdatePaint()
at Fuse.Android.TextRenderer.GetContentSize(Fuse.LayoutParams)
at Fuse.Controls.TextControl.GetContentSize(Fuse.LayoutParams)
at Fuse.Elements.Element.InternGetContentSize(Fuse.LayoutParams)
at Fuse.Elements.StandardBoxSizing.CalcArrangePaddingSize(Fuse.Elements.Element,Fuse.LayoutParams)
at Fuse.Elements.Element.GetArrangePaddingSize(Fuse.LayoutParams)
at Fuse.Elements.StandardBoxSizing.CalcMarginSize(Fuse.Elements.Element,Fuse.LayoutParams)
at Fuse.Elements.Element.GetMarginSize(Fuse.LayoutParams)
at Fuse.Layouts.StackLayout.GetElementsSize(Fuse.Visual,Fuse.LayoutParams)
at Fuse.Layouts.StackLayout.GetContentSize(Fuse.Visual,Fuse.LayoutParams)
at Fuse.Controls.LayoutControl.GetContentSize(Fuse.LayoutParams)
at Fuse.Controls.Panel.GetContentSize(Fuse.LayoutParams)
at Fuse.Elements.Element.InternGetContentSize(Fuse.LayoutParams)
at Fuse.Elements.StandardBoxSizing.CalcArrangePaddingSize(Fuse.Elements.Element,Fuse.LayoutParams)
at Fuse.Elements.Element.GetArrangePaddingSize(Fuse.LayoutParams)
at Fuse.Elements.StandardBoxSizing.CalcMarginSize(Fuse.Elements.Element,Fuse.LayoutParams)
at Fuse.Elements.Element.GetMarginSize(Fuse.LayoutParams)
at Fuse.Layouts.DockLayout.ArrangePaddingBox(Fuse.Visual,float4,Fuse.LayoutParams)
at Fuse.Controls.LayoutControl.ArrangePaddingBox(Fuse.LayoutParams)
at Fuse.Controls.Panel.ArrangePaddingBox(Fuse.LayoutParams)
at Fuse.Elements.Element.OnArrangeMarginBox(float2,Fuse.LayoutParams)
at Fuse.Visual.ArrangeMarginBox(float2,Fuse.LayoutParams)
at Fuse.Layouts.DefaultLayout.ArrangePaddingBox(Fuse.Visual,float4,Fuse.LayoutParams)
at Fuse.Controls.LayoutControl.ArrangePaddingBox(Fuse.LayoutParams)
at Fuse.Controls.Panel.ArrangePaddingBox(Fuse.LayoutParams)
at Fuse.Elements.Element.OnArrangeMarginBox(float2,Fuse.LayoutParams)
at Fuse.Visual.ArrangeMarginBox(float2,Fuse.LayoutParams)
at Fuse.Layouts.DefaultLayout.ArrangePaddingBox(Fuse.Visual,float4,Fuse.LayoutParams)
at Fuse.Controls.LayoutControl.ArrangePaddingBox(Fuse.LayoutParams)
at Fuse.Controls.Panel.ArrangePaddingBox(Fuse.LayoutParams)
at Fuse.Elements.Element.OnArrangeMarginBox(float2,Fuse.LayoutParams)
at Fuse.Visual.ArrangeMarginBox(float2,Fuse.LayoutParams)
at Fuse.Layouts.DefaultLayout.ArrangePaddingBox(Fuse.Visual,float4,Fuse.LayoutParams)
at Fuse.Controls.LayoutControl.ArrangePaddingBox(Fuse.LayoutParams)
at Fuse.Elements.Element.OnArrangeMarginBox(float2,Fuse.LayoutParams)
at Fuse.Visual.ArrangeMarginBox(float2,Fuse.LayoutParams)
at Fuse.Layouts.DefaultLayout.ArrangePaddingBox(Fuse.Visual,float4,Fuse.LayoutParams)
at Fuse.Controls.LayoutControl.ArrangePaddingBox(Fuse.LayoutParams)
at Fuse.Controls.Panel.ArrangePaddingBox(Fuse.LayoutParams)
at Fuse.Elements.Element.OnArrangeMarginBox(float2,Fuse.LayoutParams)
at Fuse.Visual.ArrangeMarginBox(float2,Fuse.LayoutParams)
at Fuse.Visual.OnArrangeMarginBox(float2,Fuse.LayoutParams)
at Fuse.Visual.ArrangeMarginBox(float2,Fuse.LayoutParams)
at Fuse.Visual.PerformLayout(float2)
at Fuse.Visual.PerformLayout()
at Fuse.UpdateListener.Invoke()
at Fuse.UpdateManager.ProcessListeners(Fuse.Stage,Uno.Collections.List<Uno.Exception>&)
at Fuse.UpdateManager.Update(Fuse.Stage)
at Fuse.UpdateManager.ProcessStages()
at Fuse.UpdateManager.Update()
at Outracks.Simulator.Client.Application.OnUpdate()
at Fuse.App.OnTick(object,Uno.Platform.TimerEventArgs)
at Uno.Platform.Display.OnTick(Uno.Platform.TimerEventArgs)
at Uno.Platform.AndroidDisplay.OnFrameCallback(double,double)