加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows-phone-7 – Inneractive Ads会导致很多应用程序崩溃(Win

发布时间:2020-12-14 02:46:26 所属栏目:Windows 来源:网络整理
导读:我使用InnerActive作为我的 Windows Phone应用程序的默认广告提供.我从2013年6月开始使用它,在年终分析中,我发现InnerActive广告是我应用程序崩溃的主要来源.最糟糕的是,它的代码不是我没有任何控制权.我已经针对请求Inneractive Ads的每个操作放置了“try c
我使用InnerActive作为我的 Windows Phone应用程序的默认广告提供.我从2013年6月开始使用它,在年终分析中,我发现InnerActive广告是我应用程序崩溃的主要来源.最糟糕的是,它的代码不是我没有任何控制权.我已经针对请求Inneractive Ads的每个操作放置了“try catch”.

有谁知道如何解决这个问题?

我用来请求广告的代码在哪里:

private void LoadInnerActiveAds()
{
    try
    {
        if (DeviceNetworkInformation.IsNetworkAvailable)
        {
            // Watch location
            if (_allowAdLocationTracker)
            {
                IaLocationClass iaLocation = new IaLocationClass();
                iaLocation.Done += new EventHandler<IaLocationEventArgs>(InnerActiveLocation_Done);
                iaLocation.StartWatchLocation();
            }

            optionalParams = new Dictionary<InneractiveAd.IaOptionalParams,string>();
            //optionalParams.Add(InneractiveAd.IaOptionalParams.Key_Gender,"m");
            optionalParams.Add(InneractiveAd.IaOptionalParams.Key_Ad_Alignment,InneractiveAd.IaAdAlignment.CENTER.ToString());
            optionalParams.Add(InneractiveAd.IaOptionalParams.Key_OptionalAdWidth,"480");
            optionalParams.Add(InneractiveAd.IaOptionalParams.Key_OptionalAdHeight,"80");
        }

        //Show Add Banner. Remarks: pay attention to use Application Id from NAX
        //naxAd.Childred.Count()==0 => just to add one banner control on a page. Without this,code would add as many banners as you navigate to page where banner is placed
        if (optionalParams != null && AdsUIContainer.Children.Count == 0)
        {
            InneractiveAd iaBanner = new InneractiveAd(AdsAppId,InneractiveAd.IaAdType.IaAdType_Banner,30,optionalParams);
            iaBanner.AdFailed += new InneractiveAd.IaAdFailed(InneractiveAd_AdFailed);

            Deployment.Current.Dispatcher.BeginInvoke(() => { UpdateUI(iaBanner); });
        }
    }
    catch (Exception ex)
    {
        InneractiveAd_AdFailed(ex);
    }
}

这种堆栈跟踪可能有所帮助,但请记住这是我无法控制的代码.

Frame ? ?Image ? ? ? ? ? ? ? ?Function ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Offset ? ? ? ?
0 ? ? ? ?system_xml_ni ? ? ? ?System.Xml.XmlTextReaderImpl.Throw ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0x00000036 ? ?
1 ? ? ? ?system_xml_ni ? ? ? ?System.Xml.XmlTextReaderImpl.ParseDocumentContent ? ? ? ? ? ? ? ? ? ? ?0x00000438 ? ?
2 ? ? ? ?system_xml_ni ? ? ? ?System.Xml.XmlTextReaderImpl.Read ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?0x00000036 ? ?
3 ? ? ? ?system_xml_ni ? ? ? ?System.Xml.XmlReader.ReadToFollowing ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0x0000003c ? ?
4 ? ? ? ?inneractive_ad_ni ? ?Inneractive.Ad.InneractiveAdControl.ParseCPDXml ? ? ? ? ? ? ? ? ? ? ? ?0x0000007c ? ?
5 ? ? ? ?inneractive_ad_ni ? ?Inneractive.Ad.InneractiveAdControl.webClient_UploadStringCompleted ? ?0x000000aa ? ?
6 ? ? ? ?system_net_ni ? ? ? ?System.Net.WebClient.OnUploadStringCompleted ? ? ? ? ? ? ? ? ? ? ? ? ? 0x00000010 ? ?
7 ? ? ? ?system_net_ni ? ? ? ?System.Net.WebClient.UploadStringOperationCompleted ? ? ? ? ? ? ? ? ? ?0x00000034

解:

根据Soonts的建议,这就是我提出的:

在App.xaml.cs文件中找到“Application_UnhandledException”方法并将其替换为:

// Code to execute on Unhandled Exceptions
private void Application_UnhandledException(object sender,ApplicationUnhandledExceptionEventArgs e)
{
    if (e.ExceptionObject.StackTrace.Contains("Inneractive.Ad.InneractiveAdControl"))
    {
        // Recover from the error
        e.Handled = true;
        return;
    }

    if (Debugger.IsAttached)
    {
        // An unhandled exception has occurred; break into the debugger
        Debugger.Break();
    }
}

如果您找到更好的替代品,请告诉我.

解决方法

首先,联系InnerActive告诉他们修复他们的软件.这是他们的责任.

同时,如果您知道如何重现该问题,您可以尝试以下.订阅所有未处理的异常(从Application.UnhandledException开始,也有AppDomain.UnhandledException和TaskScheduler.UnobservedTaskException),在Exception.StackTrace中处理器搜索“Inneractive.Ad.InneractiveAdControl”,如果找到 – 忽略异常,并且可选地隐藏或重新加载不相关的横幅.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读