У меня возникла проблема с раздуванием MvxImageView внутри настраиваемого элемента управления.Ошибка Inflating Mvx.MvxImageView
из исследования я сделал я нашел несколько подозреваемых
- Должен ли я добавить, если так к чему? (я видел это в связи с ошибкой надувания карты андроида.
Я создал пользовательский контроль, все неправильно? Я видел рекомендацию использовать SetContentView() вместо надувания, потому что он передает запрос indlate через механизм mvvmcross, но нет такого метода в настраиваемое представление
Вот макет пользовательского элемента управления:.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:local="http://schemas.android.com/apk/res/Com.TasteITAndroidClient" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <Mvx.MvxImageView android:scaleType="centerCrop" android:id="@+id/Image" android:layout_width="match_parent" android:layout_height="wrap_content" />
А вот UserCon Реализация Троль:
public class UserControl : LinearLayout
{
public UserControl(Context context, IAttributeSet attrs) : base(context,attrs)
{
LayoutInflater inflater = LayoutInflater.From(context);
inflater.Inflate (Resource.Layout.UserControl, this);
}
}
Вот где я использую его:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button
android:id="@+id/myButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
<TestApp.UserControl
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
Я получаю следующее исключение:
Android.Views.InflateException: Binary строки XML файл # 1: Ошибка раздувания класса Mvx.MvxImageView на Android.Runtime.JNIEnv.CallObjectMethod (intptr, intptr, Android.Runtime.JValue []) [0x00024] in/Users/builder /data/lanes/monodroid-mlion-monodroid-4.8.0-branch/9486a4ec/source/monodroid/src/Mono.Android/src/Runtime/JNIEnv.g.cs:145 на Android.Views.LayoutInflater.Inflate (int, Android.Views.ViewGroup) [0x00043] в /Users/builder/data/lanes/monodroid-mlion-monodroid-4.8.0-branch/9486a4ec/source/monodroid/src/Mono.Android/platforms/android-8 /src/generated/Android.Views.LayoutInflater.cs:422 в TestApp.UserControl..ctor (Android.Content.Context, Android.Util.IAttributeSet) [0x00011] в c: \ Users \ Amit \ Documents \ Projects \ TestApp \ TestApp \ UserControl.cs: 20 at at (wrapper dynamic-method) object.bd915d4e-f205-49cd-a1e8-a0532b2db313 (intptr, object []) в Java.Interop.TypeManager.n_Activate (intptr, intptr, intptr, intptr, intptr, intptr) [0x00070] в /Users/builder/data/lanes/monodroid-mlion-monodroid-4.8.0-branch/9486a4ec/source/monodroid/src/Mono.Android/src/Java.Interop /TypeManager.c s: 141 at at (wrapper native-to-managed). Java.Interop.TypeManager.n_Activate (intptr, intptr, intptr, intptr, intptr, intptr) at at (оболочка, управляемая навстречу) object.wrapper_native_0x40819b9d (intptr) , IntPtr, IntPtr, Android.Runtime.JValue []) < 0x00047> в точке (оберточной делегата-активизаци) .invoke_intptr_ этот __intptr_intptr_intptr_JValue [] (IntPtr, IntPtr, IntPtr, Android.Runtime.JValue []) в Android.Runtime.JNIEnv.CallObjectMethod (intptr, intptr, Android.Runtime.JValue []) [0x00005] в /Users/builder/data/lanes/monodroid-mlion-monodroid-4.8.0-branch/9486a4ec/source/monodroid /src/Mono.Android/src/Runtime/JNIEnv.g.cs:141 на Android.Views.LayoutInflater.Inflate (int, Android.Views.ViewGroup) [0x00043] в/Пользователи/builder/data/lanes/monodroid -mlion-monodroid-4.8.0-отруби ch/9486a4ec/source/monodroid/src/Mono.Android/platform/android-8/src/generated/Android.Views.LayoutInflater.cs: 422 at Cirrious.MvvmCross.Binding.Droid.BindingContext.MvxAndroidBindingContext.CommonInflate (int , Android.Views.ViewGroup, Cirrious.MvvmCross.Binding.Droid.Binders.MvxBindingLayoutInflatorFactory) [0x0003c] в c: \ Projects \ Misc \ MVVMCROSS \ Cirrious \ Cirrious.MvvmCross.Binding.Droid \ BindingContext \ MvxAndroidBindingContext.cs: 58 at Cirrious.MvvmCross.Binding.Droid.BindingContext.MvxAndroidBindingContext.BindingInflate (int, Android.Views.ViewGroup) [0x00001] в c: \ Projects \ Misc \ MVVMCROSS \ Cirrious \ Cirrious. MvvmCross.Binding.Droid \ BindingContext \ MvxAndroidBindingContext.cs: 37 at Cirrious.MvvmCross.Binding.Droid.BindingContext.MvxBindingContextOwnerExtensions.BindingInflate (Cirrious.MvvmCross.Binding.BindingContext.IMvxBindingContextOwner, int, Android.Views.ViewGroup) [0x0000d] в c: \ Projects \ Misc \ MVVMCROSS \ Cirrious \ Cirrious.MvvmCross.Binding.Droid \ BindingContext \ MvxBindingContextOwnerExtensions.cs: 18 в Cirrious.MvvmCross.Droid.Views.MvxActivity.SetContentView (int) [0x00001] в c: \ Проекты \ Разное \ MVVMCROSS \ Cirrious \ Cirrious.MvvmCross.Droid \ Views \ MvxActivity.cs: 51 в TestApp.Main.InnerViewModelSet() [0x00001] в c: \ Users \ Amit \ Documents \ P rojects \ TestApp \ TestApp \ MainActivity.cs: 21 at at TestApp.BaseActivity 1<TestApp.LoginPageViewModel>.OnViewModelSet() <0x00087> at Cirrious.MvvmCross.Droid.Views.MvxActivity.set_ViewModel (Cirrious.MvvmCross.ViewModels.IMvxViewModel) [0x00009] in c:\Projects\Misc\MVVMCROSS\Cirrious\Cirrious.MvvmCross.Droid\Views\MvxActivity.cs:38 at Cirrious.MvvmCross.Views.MvxViewExtensionMethods.OnViewCreate (Cirrious.MvvmCross.Views.IMvxView,System.Func
1) [0x00055] в c: \ Projects \ Misc \ MVVMCROSS \ Cirrious \ Cirrious.MvvmCross \ Views \ MvxViewExtensionMethods.cs: 35 at Cirrious. [0x0006b] в c: \ Projects \ Misc \ MVVMCROSS \ Cirrious \ Cirrious.MvvmCross.Droid \ Views \ MvxActivityViewExtensions .cs: 50 на Cirrious.MvvmCross.Droid.Views.MvxActivityAdapter.EventSourceOnCreateCalled (объект, Cirrious.CrossCore.Core.MvxValueEventArgs Android.OS.Bundle > > .invoke_void__this ___ object_TEventArgs (объект, Cirrious.CrossCore.Core.MvxValueEventArgs1) < 0x00067> at at Cirrious.CrossCore.Droid. Views.MvxDelegateExtensionMethods.Raise (System.EventHandler 1<Cirrious.CrossCore.Core.MvxValueEventArgs
1>, объект, Android.OS.Bundle) < 0x00113> at Cirrious.CrossCore.Droid.Views.MvxEventSourceActivity.OnCreate (Android.OS.Бундл) [0x00009] в c: \ Projects \ Misc \ MVVMCROSS \ CrossCore \ Cirrious.CrossCore.Droid \ Views \ MvxEventSourceActivity.cs: 23 at at TestApp.BaseActivity`1.OnCreate (Android.OS.Bundle) < 0x0005b> на TestApp.Main.OnCreate (Android.OS.Bundle) [0x00001] в c: \ Users \ Amit \ Documents \ Projects \ TestApp \ TestApp \ MainActivity.cs: 16 на Android.App.Activity.n_OnCreate_Landroid_os_Bundle_ (intptr, intptr, intptr) [0x00010] в /Users/builder/data/lanes/monodroid-mlion-monodroid-4.8.0-branch/9486a4ec/source/monodroid/src/Mono.Android/platforms/android-8/src/generated/Android.App.Activity.cs : 1561 at at (обертка er dynamic-method) object.302eab70-b743-4322-bd6e-c04ded2426ec (intptr, intptr, intptr) at at --- Конец трассировки стека управляемых исключений --- at android.view.InflateException: двоичный XML-файл строка # 1: ошибка раздувания класса Mvx.MvxImageView на android.view.LayoutInflater.createViewFromTag (LayoutInflater.java:698) at at android.view.LayoutInflater.rInflate (LayoutInflater.java:746) at android.view .LayoutInflater.inflate (LayoutInflater.java:489) at android.view.LayoutInflater.inflate (LayoutInflater.java:396) at at android.view.LayoutInflater.inflate (LayoutInflater.java:352) at at mono. android.TypeManager.n_activate (собственный метод) at at mono.android.TypeManager.Activate (Ty peManager.java:7) at at testapp.UserControl. (UserControl.java:29) at at java.lang.reflect.Constructor.constructNative (собственный метод) at at java.lang.reflect.Constructor.newInstance (конструктор .java: 417) at at android.view.LayoutInflater.createView (LayoutInflater.java:587) at at android.view.LayoutInflater.createViewFromTag (LayoutInflater.java:687) at android.view.LayoutInflater.rInflate (LayoutInflater.java:746) at android.view.LayoutInflater.inflate (LayoutInflater.java:489) at android.view.LayoutInflater.inflate (LayoutInflater.java:396) at at android.view.LayoutInflater.inflate (LayoutInflater.java:352) at at testapp.Main.n_onCreate (собственный метод) at at testapp.Main.onCreate (Main.java:28) at at android.app.Activity.performCreate (Activity.java:5104) at at android.app.Instrumentation.callActivityOnCreate (Instrumentation. java: 1080) at at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2144) at atroid.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2230) at atroid.app.ActivityThread.access $ 600 (ActivityThread.java:141) at android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1234) at at android.os.Handler.dispatchMessage (Handler.java:99) at android.os.Looper .loop (Looper.java:137) at at android.app.ActivityThread.main (ActivityThread.java:50 39) at at java.lang.reflect.Method.invokeNative (собственный метод) at at java.lang.reflect.Method.invoke (Method.java:511) at at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:793) at at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:560) at at dalvik.system.NativeStart.main (родной метод) at Причиненный: java.lang.ClassNotFoundException: Не нашел класс «Mvx.MvxImageView» по пути: /data/app/TestApp.TestApp-1.apk at at dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:65) at в java.lang.ClassLoader.loadClass (ClassLoader.java:501) at at java.lang.ClassLoader.loadClass (ClassLoader.java:461) at android.view.LayoutInflater. CreateView (LayoutInflater.java:552) на в android.view.LayoutInflater.createViewFromTag (LayoutInflater.java:687) на ... еще 31 в
Я действительно не понимаю, чего вы пытаетесь достичь. Вы раздуваете представление, а затем просто бросаете его? В любом случае вы получаете «ClassNotFoundException», потому что он не может найти «Mvx.MvxImageView». – Cheesebaron
@ Cheesebaron Возможно, я что-то делаю неправильно. Что вы имеете в виду, я раздуваю взгляд, а затем выбрасываю его? То, что я пытаюсь сделать, - создать эквивалент UserControl для моего приложения для Android Xamarin. Что я делаю не так. Это то, что я видел, как люди делали в нескольких статьях. –