私のデフォルト広告としてInnerActiveを使用して、私のWindows Phoneアプリを提供します。私は2013年6月からそれを使用しています。私の年末の分析では、InnerActive広告が私のアプリケーションクラッシュの主な原因であることに気付きました。最悪の部分は、私はコードを制御できないということです。私は既にInneractive Adsをリクエストするすべての操作の周りに "try catch"を配置しました。Inneractive Adsは多くのアプリケーションクラッシュを引き起こします(Windows Phone)
この問題を解決するにはどうすればよいですか?
どこで広告を要求するために使用されるコード:
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
ソリューション: "Application_UnhandledException" 方法を見つけて、でそれを置き換えるApp.xaml.csファイルで
:Soonts提案後
、これは私が思い付いたものです:
// 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();
}
}
あなたがより良い選択肢を見つけたら今すぐ。
もう一度お返事ありがとうございます。私はそれを試してみる。これはちょうどテストする頸部の痛みになるでしょう。 –