2013-03-12 2 views
2

XML 파일을 부 풀릴 때 내 OnViewModelSet() 함수에서 오류가 발생합니다.Mvvmcross 안드로이드 - 오류 유입 클래스 : ClassNotFoundException

LayoutInflater inflater = LayoutInflater.From(this); 
View mainView = inflater.Inflate(Resource.Layout.Main, null); 

나는 "java.lang.ClassNotFoundException가 : Mvx.MvxBindableListView"점점 오전 전화 :

Android.Views.InflateException: Binary XML file line #1: Error inflating class Mvx.MvxBindableListView 

at Android.Runtime.JNIEnv.CallObjectMethod (intptr,intptr,Android.Runtime.JValue[]) [0x00024] in /Users/builder/data/lanes/monodroid-lion-bigsplash/0e0e51f9/source/monodroid/src/Mono.Android/src/Runtime/JNIEnv.g.cs:145 

at Android.Views.LayoutInflater.Inflate (int,Android.Views.ViewGroup) [0x0003e] in /Users/builder/data/lanes/monodroid-lion-bigsplash/0e0e51f9/source/monodroid/src/Mono.Android/platforms/android-12/src/generated/Android.Views.LayoutInflater.cs:543 

at AndroidCornerstoneMobile.MainView.OnViewModelSet() [0x00010] in c:\Users\David\Documents\Work\AndroidXamarin\AndroidCornerstoneMobile\Views\MainView.cs:30 

at at Cirrious.MvvmCross.Droid.Views.MvxActivityView`1<Core.ViewModels.MainViewModel>.set_ViewModel (Core.ViewModels.MainViewModel) <0x000bb> 

at at Cirrious.MvvmCross.ExtensionMethods.MvxViewExtensionMethods.OnViewCreate<Core.ViewModels.MainViewModel> (Cirrious.MvvmCross.Interfaces.Views.IMvxView`1<Core.ViewModels.MainViewModel>,System.Func`1<Core.ViewModels.MainViewModel>) <0x00203> 

at at Cirrious.MvvmCross.Droid.ExtensionMethods.MvxAndroidActivityExtensionMethods.OnViewCreate<Core.ViewModels.MainViewModel> (Cirrious.MvvmCross.Droid.Interfaces.IMvxAndroidView`1<Core.ViewModels.MainViewModel>) <0x00297> 

at at Cirrious.MvvmCross.Droid.Views.MvxActivityView`1<Core.ViewModels.MainViewModel>.OnCreate (Android.OS.Bundle) <0x000d3> 

at at Cirrious.MvvmCross.Binding.Droid.Views.MvxBindingActivityView`1<Core.ViewModels.MainViewModel>.OnCreate (Android.OS.Bundle) <0x000b7> 

at Android.App.Activity.n_OnCreate_Landroid_os_Bundle_ (intptr,intptr,intptr) [0x00010] in /Users/builder/data/lanes/monodroid-lion-bigsplash/0e0e51f9/source/monodroid/src/Mono.Android/platforms/android-12/src/generated/Android.App.Activity.cs:1837 

at at (wrapper dynamic-method) object.8c1f4311-41e4-4a0f-98f2-454a6152589a (intptr,intptr,intptr) <IL 0x00017, 0x00043> 

at 

at --- End of managed exception stack trace --- 

at android.view.InflateException: Binary XML file line #1: Error inflating class Mvx.MvxBindableListView 

at at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:691) 

at at android.view.LayoutInflater.rInflate(LayoutInflater.java:739) 

at at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 

at at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 

at at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 

at at cirrious.mvvmcross.binding.droid.views.MvxBindingActivityView_1.n_onCreate(Native Method) 

at at cirrious.mvvmcross.binding.droid.views.MvxBindingActivityView_1.onCreate(MvxBindingActivityView_1.java:31) 

at at android.app.Activity.performCreate(Activity.java:4539) 

at at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 

at at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2013) 

at at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2083) 

at at android.app.ActivityThread.access$600(ActivityThread.java:134) 

at at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1233) 

at at android.os.Handler.dispatchMessage(Handler.java:99) 

at at android.os.Looper.loop(Looper.java:137) 

at at android.app.ActivityThread.main(ActivityThread.java:4697) 

at at java.lang.reflect.Method.invokeNative(Native Method) 

at at java.lang.reflect.Method.invoke(Method.java:511) 

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

at at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554) 

at at dalvik.system.NativeStart.main(Native Method) 

at Caused by: java.lang.ClassNotFoundException: Mvx.MvxBindableListView 

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

at at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 

at at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 

at at android.view.LayoutInflater.createView(LayoutInflater.java:552) 

at at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680) 

at ... 20 more 

답변

5

MvvmCross 클래스를 팽창 여기

전체 예외 , 이어야하며 MvxActivity 클래스에서 제공하는 BindingInflate 메서드를 사용해야합니다. 가장 쉬운 방법은 SetContentView() (OnCreate() 또는 OnViewModelSet())입니다.

이러한 메서드는 축약 된 네임 스페이스 Mvx.을 해석하는 방법을 알고 있으며 MvxBind 바인딩 문을 압축 해제하는 방법을 알고있는 MvvmCross 바인딩 코드를 통해 인플레이션을 라우팅합니다.

기본 Android 인플레이터는이 중 하나에 대해 알지 못하므로 그냥 사용할 수 없습니다.

+0

SetContentView (Resource.Layout.Main); 오류도 발생시킵니다. BindingInflate를 사용하려고 시도한 결과 다음과 같은 오류가 발생했습니다. System.TypeInitializationException : Cirrious.MvvmCross.Binding.Droid.MvxAndroidBindingResource ---> System.Exception :에 대한 리소스 ID를 찾는 동안 오류가 발생했습니다. MvxBinding - ResourcesToCopy가 실행 파일에 링크되어 있는지 확인하십시오.> System.Exception : 객체 참조가 객체의 인스턴스로 설정되지 않았습니다. –

+0

질문 : 사용중인 버전은 무엇입니까? 샘플 중 어떤 것도 당신을 위해 작동합니까? 목록이 꽤 많이 있습니다. 그렇다면 앱과의 차이점을 발견 할 수 있습니까? 바깥 쪽, 기회 - 이것은 릴리스 빌드에서만 실패한 것입니까? – Stuart

+1

사실 ... 이제 귀하의 의견을 다시 읽었습니다. "ResourcesToCopy가 실행 파일에 링크되어 있는지 확인하십시오."- Resources/Value 폴더에 MvxBindingAttributes.xml 파일이 있습니까? AndroidResource로 표시되어 있습니까? – Stuart

관련 문제