【发布时间】:2017-06-05 13:56:17
【问题描述】:
我知道 Xamarin Android 中的构造函数困难,如下所述: No constructor found for ... (System.IntPtr, Android.Runtime.JniHandleOwnership)
我在应用程序中创建的所有片段、活动和其他自定义视图都导入此构造函数。
但有时null reference exception 会在OnCreateView 方法中抛出。
示例:
public class TestView: Android.Support.V4.App.Fragment{
public TestClass _testClass;
public TestView (TestClass testClass)
{
this._testClass = testClass;
}
public TestView(IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer) : base(javaReference, transfer)
{
}
public override Android.Views.View OnCreateView (Android.Views.LayoutInflater inflater, Android.Views.ViewGroup container, Android.OS.Bundle savedInstanceState)
{
View view = inflater.Inflate (Resource.Layout.Fragment_TestView, container, false);
_testClass.ExecuteTestMethod();
return view;
}
}
这段代码偶尔会在OnCreateView 中抛出一个null reference exception。当我直接从代码创建视图并随后对其进行测试时,这种情况很少发生,也永远不会发生。
现在很明显,这段代码中唯一可以引发异常的点是_testClass 变量。
所以现在很明显我的问题是,当调用javaReference 构造函数时,OncreateView 方法是否也被执行?
【问题讨论】:
标签: c# android xamarin xamarin.android