将Visual Studio的Xamarin.Android更新到最新的稳定版本后,我收到一个奇怪的错误。在调试模式下启动应用程序时,Visual Studio有时会抛出NullReferenceException,而不是预期的。这发生在
行ThreadPool.QueueUserWorkItem(x => ContinueOnCreate());
在我的Activity的OnCreate方法中。但奇怪的是,当在上一行行上放置断点时,我立即得到
Unhandled Exception:
System.NullReferenceException: Object reference not set to an instance of an object
一旦断点被击中,在Visual Studio中。在这种情况下,有问题的行是对实例方法的简单方法调用:
AnimateWidgets();
...如果我还在此方法的第一个花括号上放置断点,则由于调用AnimateWidgets时抛出NullReferenceException,断点不会被命中。
如果我在活动的OnCreate方法的第一个花括号上放置一个断点,它会按预期命中,但是当单步执行时,我会在调用CookieManager.Instance.RemoveAllCookie的方法时获得类似的NullReferenceException。在
CookieSyncManager.CreateInstance(this);
CookieManager.Instance.RemoveAllCookie();
CookieSyncManager.Instance.Sync();
我猜这是Xamarin中的一个错误,但我想知道是否有人有类似的经历。我使用的是Xamarin版本3.9.547.0和Xamarin.Android版本4.20.2.1。
[编辑:调用CookieManager.Instance.RemoveAllCookie方法时会导致此问题。)
答案 0 :(得分:0)
删除Android手机中的运行时。
我在低API版手机中解决了相同的情况。 当我在旧的API级别手机中使用多线程或异步方法时,会发生此问题。
答案 1 :(得分:0)
问题是由Android WebView的更新版本中的问题引起的,可能是由于错误地将信号转发到SIGSEGV信号处理程序引起的。它只发生在Debug版本中,而不是Release。
临时解决方法是通过进行"设置"降低设备上的WebView。 - > "应用" - > " Android系统WebView" - > "卸载更新"。使用版本39可以使用,但它也可以用于更高版本。
有关详细信息,请参阅
http://www.asus.com/zentalk/forum.php?mod=viewthread&tid=5919
https://bugzilla.xamarin.com/show_bug.cgi?id=29365
https://code.google.com/p/chromium/issues/detail?id=476831
非常感谢Xamarin的Jon Goldberger及时追踪这个问题。
[修改:Jonathan Pryor has a workaround that doesn't require downgrading the WebView。我一直无法通过此修复解决问题,但您的里程可能会有所不同。还要感谢Jon Goldberger的链接]。