经过艰苦的尝试重现以下崩溃的过程后,我终于成功了,虽然它仍然没有告诉我它到底发生了什么或者是什么导致它(虽然我确实有怀疑,见下文)。毋庸置疑,它并不常见,但奇怪的是,在应用程序的这个生产版本中添加新功能(例如使用派生的UIApplication类),似乎会使它更频繁地崩溃同样的错误。
我从我正在测试的iOS模拟器中提取了此崩溃日志。在真实设备上进行测试会产生相同的错误。
UIViewAnimationState setAnimationAttributes:correctZeroDuration:skipDelegateAssignment:customCurve:
我注意到在该日志中,有一个对private void OnKeyboardNotification(NSNotification notification)
{
if (!IsViewLoaded)
{
return;
}
// Check if keyboard is becoming visible
bool visible = notification.Name == UIKeyboard.WillShowNotification;
// Start an animation using values from the keyboard notification
UIView.BeginAnimations("Animate for keyboard");
UIView.SetAnimationBeginsFromCurrentState(true);
UIView.SetAnimationDuration(UIKeyboard.AnimationDurationFromNotification(notification));
UIView.SetAnimationCurve((UIViewAnimationCurve)UIKeyboard.AnimationCurveFromNotification(notification));
var keyboardFrame = visible ? UIKeyboard.FrameEndFromNotification(notification) : UIKeyboard.FrameBeginFromNotification(notification);
OnKeyboardChanged(visible, (float)keyboardFrame.Height);
UIView.CommitAnimations();
}
protected virtual void OnKeyboardChanged(bool visible, float keyboardHeight)
{
}
的调用。
这至少与应用程序似乎崩溃的方式一致(在极少数情况下它会崩溃)。它似乎总是在动画视图时。在这个特定的例子中,是在点击输入字段后键盘出现的时候。
所以我搜索了代码以找到动画的位置,我发现了这个:
=== Visual Studio Community 2017 for Mac ===
Version 7.2.2 (build 11)
Runtime: Mono 5.4.1.6 (2017-06/1f4613aa1ac) (64-bit)
=== .NET Core ===
Runtime Version: 1.0.1
SDK Version: 1.0.0-preview2-003131
=== Xamarin.iOS ===
Version: 10.12.3.3 (Visual Studio Community)
=== iOS ===
Version: 10.3
=== Test device ===
iPad Pro (9.7 inch)
就像我说的,仍然没有告诉我完全导致崩溃的原因,所以...
问题: 究竟是什么导致了崩溃?
版本信息:
class print() // <-- class declaration doesn't take parentheses
print(string name) // <-- you have to use std::string
答案 0 :(得分:0)
您可以尝试将该过程包装在
中try {
} catch (Exception ex) {
};
并在catch中添加一个断点,然后查找ex对象以获取有关导致崩溃的更多信息。
我对未来的建议是将int main[]
函数转换为try-catch,这样您就可以自动获取应用程序从本机代码中抛出的任何崩溃:)