我使用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(); } }
如果您找到更好的替代品,请告诉我.