Xamarin形式:没有名称为'getDrawable'signature ='(I)Landroid / graphics / drawable / Drawable;的方法;'在类Landroid / content / Context中;

时间:2018-07-02 15:29:47

标签: c# xamarin xamarin.forms xamarin.android

我下载了以下项目:https://github.com/adamped/Instagram 当我运行它时,我得到了这个异常:

  

未处理的异常:

     

Java.Lang.NoSuchMethodError:没有名称为“ getDrawable”的方法   签名='(I)Landroid / graphics / drawable / Drawable;'在班上   Landroid / content / Context;

在本课程中:

[assembly: ExportRenderer(typeof(Entry), typeof(TextViewCustomRenderer))] namespace Instagram.Droid.Renderers {     public class TextViewCustomRenderer: EntryRenderer  {

        protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)      {           base.OnElementChanged(e);

            if (Control != null)    
    {
                /*This throws the exception*/Control.Background = Android.App.Application.Context.GetDrawable(Resource.Drawable.rounded_corners);
                Control.Gravity = GravityFlags.CenterVertical;
                Control.SetPadding(10, 0, 0, 0);            }       }

    } }

我试图将编译版本从Oreo更改为Nougat,但无济于事!

看来我不知道这个例外是什么!

请帮助。

1 个答案:

答案 0 :(得分:0)

getDrawable已过时。您可以尝试使用此:

this.Control.Background = ContextCompat.GetDrawable(Forms.Context, Resource.Layout.YourDrawableId);