2017-04-27 9 views
0

FFImageLoading에 이상한 문제가 있습니다. 컴파일러는 오류를 표시하지 않지만 응용 프로그램이 장치에서 시작될 때 예외가 throw됩니다. System.NullReferenceException.Xamarin 안드로이드 FFImageLoading ImageService.Instance.LoadUrl() System.NullReferenceException


코드 :

C#을

private void setUserImage() 
{ 
    ImageService.Instance.Initialize(); 
    imgThunbailUsername = FindViewById<ImageViewAsync>(Resource.Id.imgDisplay); 
    string url = @"https://lh4.googleusercontent.com/-Lfgi-xEMwuk/VNWoy8EDWcI/AAAAAAAAACk/rwsluNfhSZY/w1486-h832-no/photo.jpg"; 

    ImageService.Instance.LoadUrl(url) 
     .Retry(3, 200) 
     .DownSample(60, 60) 
     .Into(imgThunbailUsername); // compiler points here with an exception 
} 

XML은

<FFImageLoading.Views.ImageViewAsync 
    android:id="@+id/imgDisplay" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:scaleType="fitCenter" /> 

나는 것 팁, 아이디어 또는 Xamarin의 이미지를위한 또 다른 훌륭한 도구에 감사드립니다.

+1

디버깅을하셨습니까? 'imgThunbailUsername'은 null입니까? – SushiHangover

+0

글쎄 ... 나는 심지어 그것을 주석하지 않을 것이다 ... didn; t 그것을 점검해라. 컴파일러는 문제가없는 것처럼 보이지만 실제로는 그 요소를 찾지 못합니다. 고맙습니다. 답변을 게시하면 동의 할 것입니다. –

답변

1

그래, 나는 틀린 것을 발견했다. 아래 XML은 ViewModel 바로 아래에 있지 않습니다. 저기

<FFImageLoading.Views.ImageViewAsync 
    android:id="@+id/imgDisplay" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:scaleType="fitCenter" /> 

XML은 내가 제대로 호출 할 필요가이 경우에 따라서

<android.support.design.widget.NavigationView 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:background="@android:color/white" 
    android:id="@+id/nav_view" 
    app:headerLayout="@layout/drawer_header" <!-- here --> 
    app:menu="@menu/navmenu" /> 
</android.support.v4.widget.DrawerLayout> 

내부라고보기 :

View headerLayout = navigationView.InflateHeaderView(Resource.Layout.drawer_header); 

등처럼 사용 FindViewById에 :

imgThunbailUsername = headerLayout.FindViewById<ImageViewAsync>(Resource.Id.imgDisplay); 

그래서 내가해야 할 일은 View headerlayoutInflateHeaderView으로 얻는 것입니다.