MonoDroid: Fragment.Instantiate ClassNotFoundException

Я пытаюсь создать прокручиваемую вкладку с помощью ActionBar в Mono для Android.

Adroid для плагина eclipse имеет это как шаблон проекта по умолчанию, и мне удалось его преобразовать, теперь я пытаюсь добавить функционально, чтобы отделить мои фрагменты.

Когда я пытаюсь запустить свой проект, я получаю ClassNotFoundException

Вот код для фрагмента

using Fragment = Android.Support.V4.App.Fragment; namespace MobileCompanion.AndroidOS.App.UI.Customers { public class HomeTab : Fragment { public override Android.Views.View OnCreateView(Android.Views.LayoutInflater inflater, Android.Views.ViewGroup viewGroup, Android.OS.Bundle p2) { return null; } } } 

И вот мой адаптер раздела

 using System.Collections.Generic; using Android.Content; using Android.OS; using Android.Support.V4.App; using Java.Lang; namespace MobileCompanion.AndroidOS.App { public class SectionsPagerAdapter : FragmentPagerAdapter { private readonly Context _context; public readonly IList<TabInfo> Tabs = new List<TabInfo>(); private Bundle _bundle; public SectionsPagerAdapter(FragmentManager fm, Context context, Bundle savedInstanceState) : base(fm) { this._context = context; this._bundle = savedInstanceState; } public override Fragment GetItem(int i) { var args = new Bundle(); var page = Fragment.Instantiate(this._context, typeof(HomeTab).FullName); // var page = new HomeTab(); <<--- Work but nothing displayed as none of the create methods are run page.Arguments = args; return page; } public override int Count { get { return this.Tabs.Count; } } public override ICharSequence GetPageTitleFormatted(int p0) { return new String(this.Tabs[p0].PageTitle); } } } 

Java.Lang.RuntimeException: невозможно создать экземпляр MobileCompanion.AndroidOS.App.UI.Customers.HomeTab: убедитесь, что имя класса существует, является общедоступным и имеет пустой конструктор, открытый
На Android.Runtime.JNIEnv.CallStaticObjectMethod (intptr, intptr, Android.Runtime.JValue []) [0x00024] в /Users/builder/data/lanes/monodroid-mac-monodroid-4.2.4-branch/9f7cbd60/source/ monodroid / SRC / Mono.Android / SRC / Время воспроизведения / JNIEnv.g.cs: 767

На Android.Support.V4.App.Fragment.Instantiate (Android.Content.Context, string) [0x00034] в /Users/builder/data/lanes/monodroid-mac-monodroid-4.2.4-branch/9f7cbd60/source/ monodroid-привязки / Совместимость-v4 / привязки / объект / платформа-14 / SRC / сгенерированный / Android.Support.V4.App.Fragment.cs: 624

В MobileCompanion.AndroidOS.App.SectionsPagerAdapter.GetItem (int) [0x00007] в c: \ Projects \ MobileCompanion \ trunk \ MobileCompanion.Android.App \ SectionsPagerAdapter.cs: 28

На Android.Support.V4.App.FragmentPagerAdapter.n_GetItem_I (intptr, intptr, int) [0x00008] в /Users/builder/data/lanes/monodroid-mac-monodroid-4.2.4-branch/9f7cbd60/source/monodroid- привязок / Совместимость-v4 / привязки / объект / платформа-14 / SRC / сгенерированный / Android.Support.V4.App.FragmentPagerAdapter.cs: 56

At (объект-динамический метод ).7.7.

— Конец трассировки стека управляемых исключений —

Android.support.v4.app.Fragment $ InstantationException: невозможно создать экземпляр MobileCompanion.AndroidOS.App.UI.Customers.HomeTab: убедитесь, что имя класса существует, является общедоступным и имеет пустой конструктор, открытый

  at android.support.v4.app.Fragment.instantiate(Fragment.java:395) at android.support.v4.app.Fragment.instantiate(Fragment.java:363) at 

Mobilecompanion.androidos.app.SectionsPagerAdapter.n_getItem (собственный метод)

  at 

mobilecompanion.androidos.app.SectionsPagerAdapter.getItem (SectionsPagerAdapter.java:30)

  at 

android.support.v4.app.FragmentPagerAdapter.instantiateItem (FragmentPagerAdapter.java:97)

  at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:692) at android.support.v4.view.ViewPager.populate(ViewPager.java:821) at android.support.v4.view.ViewPager.populate(ViewPager.java:772) at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1234) at android.view.View.measure(View.java:12723) at 

android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:4698)

  at android.widget.FrameLayout.onMeasure(FrameLayout.java:293) at android.view.View.measure(View.java:12723) at 

android.widget.LinearLayout.measureVertical (LinearLayout.java:812)

  at android.widget.LinearLayout.onMeasure(LinearLayout.java:553) at android.view.View.measure(View.java:12723) at 

android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:4698)

  at android.widget.FrameLayout.onMeasure(FrameLayout.java:293) at 

com.android.internal.policy.impl.PhoneWindow $ DecorView.onMeasure (PhoneWindow.java:2092)

  at android.view.View.measure(View.java:12723) at 

android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:1064)

  at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2442) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4424) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at 

com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:784)

  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) at dalvik.system.NativeStart.main(Native Method) 

Вызвано: java.lang.ClassNotFoundException: MobileCompanion.AndroidOS.App.UI.Customers.HomeTab

  at 

dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:61)

  at java.lang.ClassLoader.loadClass(ClassLoader.java:501) at java.lang.ClassLoader.loadClass(ClassLoader.java:461) at android.support.v4.app.Fragment.instantiate(Fragment.java:385) 

Пространство имен должно быть все строчным для Fragment.Instantiate для работы. Я считаю, что это ограничение переносится с Java.

 var page = Fragment.Instantiate(_activity, typeof(T).Namespace.ToLower() + "." + typeof(T).Name); 

Лучший ответ:

 var page = Fragment.Instantiate (_activity, Java.Lang.Class.FromType(T).Name); 
Intereting Posts
Медленный поиск данных с помощью android и parse.com I-Jetty или Jetty Пользовательский режим просмотра списка прокрутки скрывает процесс выполнения и ImageView Возвращаемое значение класса AsyncTask onPostExecute Внедрение масштабирования и перетаскивания с использованием сборки Android в прослушивании жестов и прослушивании шкалы Более быстрая разработка Android Как я могу предотвратить программирование устройства Android? Связать + textIsSelectable Java.lang.RuntimeException: Невозможно создать экземпляр активности ComponentInfo Как выйти из приложения программно с помощью нажатия кнопки Listview ничего не показывает и скрывает данные Нажмите на уведомление, чтобы перейти к текущей деятельности Библиотека разработки Android 25.1.0 TextInputLayout Hint не отображается должным образом по сравнению с 24.2.1 Android не будет писать новую строку в текстовом файле Android: Как сохранить GPS активным до тех пор, пока не будет предоставлено более точное местоположение?