Skip to content

[1.7.104.0] 轮播组件 - 开启 启用动画 后发生崩溃 #1197

@baldi233

Description

@baldi233

检查清单

  • 我已更新到最新版 最新的版本号最新的版本号 测试,并看过 最新提交,确认这一 Bug 还没有修复。我也已在 Issues 中检索,确认这一 Bug 未被提交过,并且在 常见问题 中没有解决方案。
  • 我已经仔细阅读过选项里的内容,并且知道这个选项不用勾选。
  • 我已知晓并同意,此处仅用于汇报程序中存在的问题(关于其他非程序本身的问题应当在 Discussion 板块提出)。

期望的行为

正常工作

实际结果

开启后,出现崩溃窗口,动画虽然正常工作,但是主界面出现一片空白,重启应用后正常工作
当删除 轮播组件 后,出现2个崩溃窗口,且主界面无法正常工作,重启应用后恢复正常

Image Image

完整日志文件:

log-2025-7-31-13-18-36-1.log.gz
log-2025-7-31-13-31-38-1.log

重现步骤

将 轮播组件 添加到主界面,然后在 轮播组件 里添加一些天气组件
添加后,在 轮播组件 的组件设置里, 开启 启用动画

堆栈跟踪(可选)

在向开发者提交问题时请保留以下信息:
TraceID: d28709ad35ee4bfaa279967693f29a9f
================================
Avalonia.AvaloniaInternalException: Visual is atached to visual tree but root could not be found.
   at Avalonia.Visual.SetVisualParent(IList children, Visual parent)
   at Avalonia.Controls.Presenters.ContentPresenter.UpdateChild(Object content)
   at Avalonia.Controls.Presenters.ContentPresenter.ContentChanged(AvaloniaPropertyChangedEventArgs e)
   at Avalonia.Animation.Animatable.OnPropertyChangedCore(AvaloniaPropertyChangedEventArgs change)
   at Avalonia.AvaloniaObject.RaisePropertyChanged[T](AvaloniaProperty`1 property, Optional`1 oldValue, BindingValue`1 newValue, BindingPriority priority, Boolean isEffectiveValue)
   at Avalonia.PropertyStore.EffectiveValue`1.NotifyValueChanged(ValueStore owner, StyledProperty`1 property, T oldValue)
   at Avalonia.PropertyStore.EffectiveValue`1.SetAndRaise(ValueStore owner, IValueEntry value, BindingPriority priority)
   at Avalonia.PropertyStore.ValueStore.ReevaluateEffectiveValue(AvaloniaProperty property, EffectiveValue current, IValueEntry changedValueEntry, Boolean ignoreLocalValue)
   at Avalonia.Data.Core.UntypedBindingExpressionBase.PublishValue(Object value, BindingError error)
   at Avalonia.Data.TemplateBinding.PublishValue()
   at Avalonia.Data.TemplateBinding.OnTemplatedParentPropertyChanged(Object sender, AvaloniaPropertyChangedEventArgs e)
   at Avalonia.AvaloniaObject.RaisePropertyChanged[T](AvaloniaProperty`1 property, Optional`1 oldValue, BindingValue`1 newValue, BindingPriority priority, Boolean isEffectiveValue)
   at Avalonia.AvaloniaObject.SetAndRaise[T](DirectPropertyBase`1 property, T& field, T value)
   at Avalonia.Controls.TabControl.set_SelectedContent(Object value)
   at Avalonia.Controls.TabControl.<UpdateSelectedContent>b__45_0(Object v)
   at Avalonia.Reactive.LightweightObservableBase`1.Subscribe(IObserver`1 observer)
   at Avalonia.Controls.TabControl.UpdateSelectedContent(Control container)
   at Avalonia.Controls.TabControl.<>c.<.cctor>b__10_0(TabControl x, AvaloniaPropertyChangedEventArgs e)
   at Avalonia.Reactive.LightweightObservableBase`1.PublishNext(T value)
   at Avalonia.Controls.Primitives.SelectingItemsControl.OnSelectionModelPropertyChanged(Object sender, PropertyChangedEventArgs e)
   at Avalonia.Controls.Selection.SelectionModel`1.CommitOperation(Operation operation, Boolean raisePropertyChanged)
   at Avalonia.Controls.Selection.SelectionModel`1.BatchUpdateOperation.Dispose()
   at Avalonia.Controls.Selection.SelectionModel`1.set_SelectedIndex(Int32 value)
   at Avalonia.Controls.Primitives.SelectingItemsControl.set_SelectedIndex(Int32 value)
   at Avalonia.Controls.Primitives.SelectingItemsControl.EndUpdating()
   at Avalonia.StyledElement.DataContextNotifying(StyledElement element, Boolean updateStarted)
   at Avalonia.PropertyStore.ValueStore.OnAncestorInheritedValueChanged[T](StyledProperty`1 property, T oldValue, T newValue)
   at Avalonia.PropertyStore.ValueStore.OnAncestorInheritedValueChanged[T](StyledProperty`1 property, T oldValue, T newValue)
   at Avalonia.PropertyStore.ValueStore.OnInheritedEffectiveValueChanged[T](StyledProperty`1 property, T oldValue, EffectiveValue`1 value)
   at Avalonia.PropertyStore.EffectiveValue`1.NotifyValueChanged(ValueStore owner, StyledProperty`1 property, T oldValue)
   at Avalonia.PropertyStore.EffectiveValue`1.SetAndRaiseCore(ValueStore owner, StyledProperty`1 property, T value, BindingPriority priority, Boolean isOverriddenCurrentValue, Boolean isCoercedDefaultValue)
   at Avalonia.PropertyStore.EffectiveValue`1.SetLocalValueAndRaise(ValueStore owner, AvaloniaProperty property, Object value)
   at Avalonia.PropertyStore.ValueStore.SetLocalValue(AvaloniaProperty property, Object value)
   at Avalonia.Data.Core.BindingExpression.ConvertAndPublishValue(Object value, BindingError error)
   at Avalonia.Data.Core.ExpressionNodes.VisualAncestorElementNode.TrackedControlChanged(Visual control)
   at Avalonia.Reactive.LightweightObservableBase`1.PublishNext(T value)
   at Avalonia.Visual.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs e)
   at Avalonia.Input.InputElement.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs e)
   at Avalonia.Controls.Control.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs e)
   at Avalonia.Visual.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs e)
   at Avalonia.Visual.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs e)
   at Avalonia.Input.InputElement.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs e)
   at Avalonia.Controls.Control.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs e)
   at Avalonia.Visual.SetVisualParent(IList children, Visual parent)
   at Avalonia.Collections.AvaloniaList`1.NotifyRemove(T item, Int32 index)
   at Avalonia.Collections.AvaloniaList`1.Remove(T item)
   at Avalonia.Controls.Presenters.ContentPresenter.UpdateChild(Object content)
   at Avalonia.Controls.Presenters.ContentPresenter.ContentChanged(AvaloniaPropertyChangedEventArgs e)
   at Avalonia.Animation.Animatable.OnPropertyChangedCore(AvaloniaPropertyChangedEventArgs change)
   at Avalonia.AvaloniaObject.RaisePropertyChanged[T](AvaloniaProperty`1 property, Optional`1 oldValue, BindingValue`1 newValue, BindingPriority priority, Boolean isEffectiveValue)
   at Avalonia.PropertyStore.EffectiveValue`1.NotifyValueChanged(ValueStore owner, StyledProperty`1 property, T oldValue)
   at Avalonia.PropertyStore.EffectiveValue`1.SetAndRaiseCore(ValueStore owner, StyledProperty`1 property, T value, BindingPriority priority, Boolean isOverriddenCurrentValue, Boolean isCoercedDefaultValue)
   at Avalonia.PropertyStore.EffectiveValue`1.SetLocalValueAndRaise(ValueStore owner, AvaloniaProperty property, Object value)
   at Avalonia.PropertyStore.ValueStore.SetLocalValue(AvaloniaProperty property, Object value)
   at Avalonia.Data.Core.BindingExpression.ConvertAndPublishValue(Object value, BindingError error)
   at Avalonia.Data.Core.ExpressionNodes.VisualAncestorElementNode.TrackedControlChanged(Visual control)
   at Avalonia.Reactive.LightweightObservableBase`1.PublishNext(T value)
   at Avalonia.Visual.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs e)
   at Avalonia.Visual.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs e)
   at Avalonia.Input.InputElement.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs e)
   at Avalonia.Controls.Control.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs e)
   at Avalonia.Visual.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs e)
   at Avalonia.Visual.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs e)
   at Avalonia.Input.InputElement.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs e)
   at Avalonia.Controls.Control.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs e)
   at Avalonia.Visual.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs e)
   at Avalonia.Input.InputElement.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs e)
   at Avalonia.Controls.Control.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs e)
   at Avalonia.Visual.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs e)
   at Avalonia.Input.InputElement.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs e)
   at Avalonia.Controls.Control.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs e)
   at Avalonia.Visual.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs e)
   at Avalonia.Visual.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs e)
   at Avalonia.Input.InputElement.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs e)
   at Avalonia.Controls.Control.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs e)
   at Avalonia.Visual.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs e)
   at Avalonia.Input.InputElement.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs e)
   at Avalonia.Controls.Control.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs e)
   at Avalonia.Visual.SetVisualParent(IList children, Visual parent)
   at Avalonia.Collections.AvaloniaList`1.NotifyRemove(T item, Int32 index)
   at Avalonia.Collections.AvaloniaList`1.Remove(T item)
   at Avalonia.Controls.Presenters.ContentPresenter.ContentChanged(AvaloniaPropertyChangedEventArgs e)
   at Avalonia.Animation.Animatable.OnPropertyChangedCore(AvaloniaPropertyChangedEventArgs change)
   at Avalonia.AvaloniaObject.RaisePropertyChanged[T](AvaloniaProperty`1 property, Optional`1 oldValue, BindingValue`1 newValue, BindingPriority priority, Boolean isEffectiveValue)
   at Avalonia.PropertyStore.EffectiveValue`1.NotifyValueChanged(ValueStore owner, StyledProperty`1 property, T oldValue)
   at Avalonia.PropertyStore.EffectiveValue`1.SetAndRaiseCore(ValueStore owner, StyledProperty`1 property, T value, BindingPriority priority, Boolean isOverriddenCurrentValue, Boolean isCoercedDefaultValue)
   at Avalonia.PropertyStore.EffectiveValue`1.SetLocalValueAndRaise(ValueStore owner, AvaloniaProperty property, Object value)
   at Avalonia.PropertyStore.ValueStore.SetLocalValue(AvaloniaProperty property, Object value)
   at Avalonia.Data.Core.BindingExpression.ConvertAndPublishValue(Object value, BindingError error)
   at Avalonia.Data.Core.ExpressionNodes.ExpressionNode.SetError(String message)
   at Avalonia.Data.Core.ExpressionNodes.LogicalAncestorElementNode.TrackedControlChanged(ILogical control)
   at Avalonia.Reactive.LightweightObservableBase`1.PublishNext(T value)
   at Avalonia.LogicalTree.ControlLocator.ControlTracker.Detached(Object sender, LogicalTreeAttachmentEventArgs e)
   at Avalonia.StyledElement.OnDetachedFromLogicalTreeCore(LogicalTreeAttachmentEventArgs e)
   at Avalonia.StyledElement.Avalonia.Controls.ISetLogicalParent.SetParent(ILogical parent)
   at Avalonia.Controls.Primitives.TemplatedControl.ApplyTemplate()
   at Avalonia.Layout.Layoutable.MeasureCore(Size availableSize)
   at Avalonia.Layout.Layoutable.Measure(Size availableSize)
   at Avalonia.Controls.Grid.MeasureOverride(Size constraint)
   at Avalonia.Layout.Layoutable.MeasureCore(Size availableSize)
   at Avalonia.Layout.Layoutable.Measure(Size availableSize)
   at Avalonia.Layout.LayoutManager.Measure(Layoutable control)
   at Avalonia.Layout.LayoutManager.Measure(Layoutable control)
   at Avalonia.Layout.LayoutManager.ExecuteLayoutPass()
   at Avalonia.Media.MediaContext.FireInvokeOnRenderCallbacks()
   at Avalonia.Media.MediaContext.RenderCore()
   at Avalonia.Media.MediaContext.Render()
   at Avalonia.Threading.DispatcherOperation.InvokeCore()

诊断信息

SystemOsVersion: Microsoft Windows 10.0.19045
SystemOsArch: X64
SystemDeviceName: HP Z240 SFF Workstation
SystemDeviceVendor: HP
AppPackageRoot: D:\Desktop\out_app_windows_x64_full_folder
AppRoot: D:\Desktop\out_app_windows_x64_full_folder\data
AppCurrentDirectory: D:\Desktop\out_app_windows_x64_full_folder\app-1.7.104.0
AppCurrentMemoryUsage: 377,790,464.00
AppStartupDurationMs: 2360
AppVersion: 1.7.104.0-Khaslana-337deae7(dev) (Core 1.4.0.0)
AppSubChannel: windows_x64_full_folder
AppIsAssetsTrimmed: False
DiagnosticFirstLaunchTime: 2025/7/30 23:49:00
DiagnosticStartupCount: 7
DiagnosticMemoryKillCount: 0
DiagnosticLastMemoryKillTime: 2025/7/30 23:49:00
DiagnosticMemoryKillFreqDay: 0.000

最后一步

  • 我认为上述的描述已经足以详细,以允许开发人员能复现该问题。如果我的 issue 没有按照上述的要求填写,可能会被无条件关闭。

Metadata

Metadata

Assignees

No one assigned

    Labels

    Bug在使用 ClassIsland 的过程中遇到了 Bug优先级:无短期内不会计划完成的事项待验证已经修复,等待验证的问题类别:Avalonia

    Type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions