我有一个项目,最初是使用Android Studio开发的。我决定将它转换为Xamarin(Visual Studio 2015)。InstantiationException:无法实例化片段确保类名存在,是公共的,并且具有公共的空构造函数
经过几个小时的移植所有的代码,除了我的设置活动(PreferenceActivity)之外,一切工作。我有几个组成设置的PreferenceFragments,但他们都给我“无法实例化片段”。这是我收到的例外:
了java.lang.RuntimeException:无法启动活动ComponentInfo {test.mypackagename/md50d00e677e41fc49f8b3c16e79df2b77f.SettingsActivity}:android.app.Fragment $ InstantiationException:无法实例片段test.mypackagename .GeneralPreferenceFragment:确保类名称存在,是公开的,有一个空的构造函数,它是公共
我一直在寻找在线的解决方案,但我不能似乎找到一个。无论我看到他们说确保有一个空的公共构造函数,如果它的内部类必须是静态的。但我有空的构造函数,它不是内部类,它在它自己的文件中。
这里是我的SettingsActivity.cs:
namespace test.mypackagename
{
public class SettingsActivity : PreferenceActivity
{
protected override void OnPostCreate(Bundle savedInstanceState)
{
base.OnPostCreate(savedInstanceState);
}
public override void OnBuildHeaders(IList<Header> target)
{
LoadHeadersFromResource(Resource.Xml.pref_headers, target);
}
}
}
这里是我的GeneralPreferenceFragment.cs:
namespace test.mypackagename
{
public class GeneralPreferenceFragment : PreferenceFragment
{
public GeneralPreferenceFragment() { }
public override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
AddPreferencesFromResource(Resource.Xml.pref_general);
}
}
}
这里是我的pref_headers.xml:
<preference-headers xmlns:android="http://schemas.android.com/apk/res/android">
<header android:fragment="test.mypackagename.GeneralPreferenceFragment"
android:title="@string/pref_header_general" />
<header android:fragment="test.mypackagename.OtherPreferenceFragment1"
android:title="@string/pref_header_other1" />
<header android:fragment="test.mypackagename.OtherPreferenceFragment2"
android:title="@string/pref_header_other2" />
<header android:fragment="test.mypackagename.OtherPreferenceFragment3"
android:title="@string/pref_header_other3" />
<header android:fragment="test.mypackagename.OtherPreferenceFragment4"
android:title="@string/pref_header_other4" />
</preference-headers>
这是工作所以我很难确定这个问题会是什么。任何帮助将非常感激。
如果这仍然是一个问题,您可能需要上传这个简单的复制。 –