none
windows8应用商店意外关闭的原因. RRS feed

  • 问题

  • 我再进行win8应用商店认证,

    测试人员告诉我详细错误原因,

    如图:我自己也看了,每次我把我的应用拖动到如图旁边的位置,程序就会自动关闭,求大神解答这是什么原因呢。


    2014年11月28日 8:52

答案

  • 8.1 一般狀況應該沒這問題.

    除非你有加上 ApplicationView 的控制, 類似下的 xaml code. 你的 xaml 中有 VisualStateManager 嗎 ?
    或是你的程式碼中有掛上 Windows.SizeChanged 事件 ?

    <VisualStateManager.VisualStateGroups>
        <VisualStateGroup>
            <VisualState x:Name="Narrow">
                <Storyboard>
     
                    <ObjectAnimationUsingKeyFrames
                        Storyboard.TargetName="typicalPanel"
                        Storyboard.TargetProperty="Visibility">
                        <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed" />
                    </ObjectAnimationUsingKeyFrames>
     
                    <ObjectAnimationUsingKeyFrames
                        Storyboard.TargetName="narrowPanel"
                        Storyboard.TargetProperty="Visibility">
                        <DiscreteObjectKeyFrame KeyTime="0" Value="Visible" />
                    </ObjectAnimationUsingKeyFrames>
     
                </Storyboard>
            </VisualState>
        </VisualStateGroup>
    </VisualStateManager.VisualStateGroups>

    Window.Current.SizeChanged += Window_SizeChanged;

    Handling VisualState in Windows 8.1 Store apps


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。


    2014年11月28日 9:21
  • 你的頁面上應該是有設定 VisualState 的 xaml Code, 因為在縮小時會觸發 narrow 可視狀態, 在那個狀態的 xaml code 中應該是有對一個名稱為 backButton 的 element 操作, 但你畫面上並沒有這個元素, 因此出錯.

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2014年12月2日 13:54

全部回复

  • Windows 8.0 還是 Windows 8.1 ?

    如果是 8.0, 表示可能是在  Snapview 切換時出錯. 檢查xaml 關於 snapview 切換的部分


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。


    2014年11月28日 8:56
  • 是windows8.1的系统,

    请问一下snapview切换的部分具体在哪?

    我开发这个APP得时候我这块都没动啊。

    2014年11月28日 9:04
  • 8.1 一般狀況應該沒這問題.

    除非你有加上 ApplicationView 的控制, 類似下的 xaml code. 你的 xaml 中有 VisualStateManager 嗎 ?
    或是你的程式碼中有掛上 Windows.SizeChanged 事件 ?

    <VisualStateManager.VisualStateGroups>
        <VisualStateGroup>
            <VisualState x:Name="Narrow">
                <Storyboard>
     
                    <ObjectAnimationUsingKeyFrames
                        Storyboard.TargetName="typicalPanel"
                        Storyboard.TargetProperty="Visibility">
                        <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed" />
                    </ObjectAnimationUsingKeyFrames>
     
                    <ObjectAnimationUsingKeyFrames
                        Storyboard.TargetName="narrowPanel"
                        Storyboard.TargetProperty="Visibility">
                        <DiscreteObjectKeyFrame KeyTime="0" Value="Visible" />
                    </ObjectAnimationUsingKeyFrames>
     
                </Storyboard>
            </VisualState>
        </VisualStateGroup>
    </VisualStateManager.VisualStateGroups>

    Window.Current.SizeChanged += Window_SizeChanged;

    Handling VisualState in Windows 8.1 Store apps


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。


    2014年11月28日 9:21
  • 好的 谢谢我在自己代码查找下 看有没有你说的事件,有的话去掉就行了是吧?

    2014年11月28日 9:28
  • 大神你好,

    我调试了一下代码发现确实调用了

    Window.Current.SizeChanged += Window_SizeChanged;

    这个方法,我注释掉这个方法就没问这个问题了。

      this.StartLayoutUpdates(sender, e);

    我想请问一下这个方法是用来做说明的 具体是什么意思呢,求解.

     public void StartLayoutUpdates(object sender, RoutedEventArgs e)
            {
                var control = sender as Control;
                if (control == null) return;
                if (this._layoutAwareControls == null)
                {
                    // 当更新中存在相关控件时,开始侦听视图状态更改
                    Window.Current.SizeChanged += this.WindowSizeChanged;
                    this._layoutAwareControls = new List<Control>();
                }
                this._layoutAwareControls.Add(control);

                // 设置控件的初始可视状态
                VisualStateManager.GoToState(control, DetermineVisualState(ApplicationView.Value), false);
            }

    2014年12月2日 9:00
  • 调用那个方法抛出的异常是这样

    System.Exception: 没有检测到已安装的组件。

    Cannot resolve TargetName backButton.
       at Windows.UI.Xaml.VisualStateManager.GoToState(Control control, String stateName, Boolean useTransitions)
       at MoHost.Common.LayoutAwarePage.StartLayoutUpdates(Object sender, RoutedEventArgs e)
       at MoHost.Common.LayoutAwarePage.<.ctor>b__0(Object sender, RoutedEventArgs e)

    求大神告诉下是什么原因,感激不尽,好人一生平安。

    2014年12月2日 9:02
  • 你的頁面上應該是有設定 VisualState 的 xaml Code, 因為在縮小時會觸發 narrow 可視狀態, 在那個狀態的 xaml code 中應該是有對一個名稱為 backButton 的 element 操作, 但你畫面上並沒有這個元素, 因此出錯.

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2014年12月2日 13:54
  • 您好,确实是你说的这个问题 ,

    我首页backbutton注释掉了,恢复过来就不报错了,

    但是恢复过来之后,缩小的可视状态不是我想要的样子,

    我想请问一下 注释那个方法  this.StartLayoutUpdates(sender, e);

    对功能什么的有没有影响,重新发布能通过吗?

    2014年12月3日 2:09
  • 你想要甚麼樣子, 就得看你的 VisualStateManager 怎麼設計的了.

    至於你注釋那個方法, 我想是不影響發布的.


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2014年12月3日 7:44